- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我把头撞在水泥枕头上,试图找出动态含量。我不仅可以观看或观察动态内容,而且可以在任何输入上实际使用动态指令。这是一个示例案例...
<tbody>
<tr ng-repeat="(rowIndex, tableRow) in paymentData.lineItems" ng-hide='false' ng-class="{ paymentrow: markedForPay[rowIndex] == true }">
<td>Other td's</td>
<td class="table-row row-gray">
<input type="text" class="someClass" placeholder='$0.00' ng-model="tableRow.amount" />
</td>
</tr>
</tbody>
最佳答案
我是Angularjs的新手。如果我刚刚创建的东西已经存在于Angularjs中,请拥抱一下。 (我确实知道有一个针对货币的Angular预置过滤器)。
对于这么多的写作,我并不表示歉意,我更希望您拥有自己实现所需的一切。或至少改善我刚刚提供的代码。
我把头撞在水泥枕头上,试图找出动态含量。我不仅可以观看或观察动态内容,而且还可以使用动态指令来实际使用任何输入。这是一个示例案例...
<tbody>
<tr ng-repeat="(rowIndex, tableRow) in paymentData.lineItems" ng-hide='false' ng-class="{ paymentrow: markedForPay[rowIndex] == true }">
<td class="table-row row-gray">
<input type="text" watch-dynamic-input="{ index: {{ rowIndex }}, name: 'accountsTableAmountValues', filter: 'usCurrency'}" class="someClass" placeholder='$0.00' ng-model="tableRow.amount" />
</td>
</tr>
</tbody>
.filter('usCurrency', [function () {
return function (amount) {
amount = amount.toString().replace(/\D/g, '');
if(amount.length <= 0){
return amount.replace(/.+/, '');
}else{
if(amount.length == 1){
return amount.replace(/^/, '$ ').replace(/(\d{1})$/, '.$1');
}else{
return amount.replace(/^/, '$ ').replace(/(\d{2})$/, '.$1');
}
}
};
}])
<input type="text" filterElement='usCurrency' class="anyClass" placeholder='$0.00' ng-model="tableRow.amount" />
app.directive('filterElement', ['$filter', function($filter){
return {
restrict:'A', // Declares an Attributes Directive.
require: '?ngModel', // ? gets parent scope if it exists.
link: function( scope, elem, attrs, ngModel ){
if( !ngModel ){ return };
scope.$watch(attrs.ngModel, function(value){
if( value == undefined ){ return };
ngModel.$setViewValue($filter( attrs.rsFilterElement )( value )); // Sets ngModelView and ngViewValue
attrs.$$element[0].value = $filter( attrs.rsFilterElement )( value ); // I would prefer to not have to do this step. Any ideas?
});
}
}
}]);
$scope.accountsTableAmountValues = {};
<input type="text" watch-dynamic-input="{index: {{ rowIndex }}, name: 'accountsTableAmountValues', filter: 'usCurrency'}" ng-change='selected_to_pay(rowIndex)' class="table-text-field-white payment-field-font-color" placeholder='$0.00' ng-model="tableRow.amount" />
watch-dynamic-input="index: ng-repeat index number, name: this is the variable name you created in the controller, without the leading $scope, and as string, filter: this can either be a filter name as a string and case sensitive, or just NULL if you don't want to use a filter here.
watch-dynamic-input="{index: {{ rowIndex }}, name: 'accountsTableAmountValues', filter: 'usCurrency'}"
app.directive('watchDynamicInput', ['$filter', function($filter){
return {
restrict:'A', // Declares an Attributes Directive.
require: '?ngModel', // ? makes looking for controller on parent element.
link: function( scope, elem, attrs, ngModel ){
if( !ngModel ){ return }; // If there is no ngModel, then forget everthing else, and just return. This may be redundant and better off in the $watch function. Haven't tested yet.
scope.$watch(attrs.ngModel, function(value){
// Above, let's watch THIS ROW's ng-model="tableRow.amount"; whatever that value might be. We don't care now because it's all dynamic, upon page render will be undefined at first, then whatever the user types or deletes. Who cares!!!
if( value == undefined ){ return }; // if you are not yet defined, then return. I'll catch you on the next input change and check again. It's OK, we are best friends.
// We make a local for improved readability, and faster code.
// Also, the below code transforms our passed in string of:
// "{index: {{ rowIndex }}, name: 'accountsTableAmountValues', filter: 'usCurrency'}"
// into an actual object literal thus becomes...
// {index: {{ rowIndex }}, name: 'accountsTableAmountValues', filter: 'usCurrency'}
var passed_object = scope.$eval(attrs['watchDynamicInput'])
// and now this works passed_object.index or passed_object.name
// We allow dynamic filters, or we don't-a as a NULL can be passed into HTML || a filter name
value = passed_object.filter ? $filter(passed_object.filter)(value) : value;
// We set the THIS model value to new value (filtered or not, whatever: we're easy like that)
ngModel.$setViewValue(value);
// We have to set the element value as well or the filter amount will not display in input
// I think I am strong arming this. I just want the ACTUAL element value to match the ngModel.
attrs.$$element[0].value = value;
// Now we just add the new value to our object literal we created in the controller.
// It will always create a key if nothing is in the object, or it will write over the current value. If you require ALL inputs old and new you could rewrite and use an array.
scope[passed_object.name][passed_object.index] = value;
// This object would now look something like {0: 'row0inputvalue', 1: 'row1inputvalue' etc...}
});
}
}
scope.$watch('accountsTableAmountValues', function(amounts){
// You can do what you want now. I iterate of amounts and sum the values
// and then transfer the result to my $scope.grandTotal in my controller.
// Now I have a way of ALWAYS summing the total on ANY input change to payment amount column inputs
// that were created without knowing the ng-model name or how many there may be.
}, true); // The true setting here checks the new version to the old version. I need this for my example, but you may not.
关于javascript - Angularjs-我们如何通过动态ng-model名称以及任何更改过滤元素值来观察ng Repeat中的动态元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857177/
在angular 6项目中,我使用angular cli命令ng g lierary @some/libName创建了 Angular 库。在我的库中,我有一个需要@ng-bootstrap/ng-b
我在 plunker 有一个简单的例子.我在一个元素上有一个 ng-show,另一个元素有一个选择。选择应该切换显示/隐藏其他(输入)元素。最初将 select 设置为 Yes 会按预期显示其他输入元
我需要一个由其定义的属性(受监控)过滤的数据列表,我不能这样做: ng-if="project.monitored" 因为我需要计算不受监控的数量。 对于这个例子,我简化了从 getProjects(
我知道 ng-show 和 ng-hide 影响元素上设置的类,而 ng-if 控制元素是否呈现为 DOM 的一部分 是否有选择 ng-if 而不是 ng-show/ng-hide 或反之亦然的示例?
我试图理解 ng-if 和 ng-show/ng-hide 之间的区别,但它们看起来相同对我来说。 选择使用其中之一时我应该记住什么区别吗? 最佳答案 ngIf ngIf 指令根据表达式删除或重新创建
我有一个基本问题,通过查看 Angular 文档或 Google 找不到答案,因此我假设这是不可能的,但我想确定一下。 基本上我想要的是使用一个变量,例如$scope.loggedIn,如下所示: H
据我了解ng-show和ng-hide影响元素上设置的类,并且 ng-if控制元素是否呈现为 DOM 的一部分。 是否有选择 ng-if 的指南超过ng-show/ng-hide或者反之亦然? 最佳答
我的 html 中有几个 div。我正在将内容导出为 PDF,当用户单击导出按钮时会下载 PDF。我希望少数 div 的内容不导出/显示在 PDF 中,但应显示在网页上。我已将 ng-if="!isE
我有一个标记按钮,当用户点击它时,标记讨论,然后标记按钮被替换为文本“成功标记”。目前,我在单击标记按钮后无法禁用 ng-click 时遇到了问题。 ng-click 对于文本“已成功标记”仍然存在,
我在 Angular 1.4.7 中有这段代码: console.log('press') 不会在按下任何键时触发。我也尝试使用 keyup 和 keydown,但它们也不起作用。 我知道一个元素需
正如标题中提到的,我不知道如何使用 ng-bind-html 在部分内部呈现 html。 这里有一个 plunker 来说明。 http://plnkr.co/edit/YFfHsahcum7XA8G
将 ng-bootstrap 安装到我的 Angular-CLI(11.0.4) 时出现错误。 什么时候 ng add @ng-bootstrap/ng-bootstrap 还有我的日志文件 [err
我想从另一个 ng-controller 访问 ng-model,这可能吗?如何实现?在下面的代码中,我使用两个 Controller ,第一个 Controller 具有 mddl1,另一个 Con
在我的应用程序中,当我对文章进行 ng-repeat 时,用户单击“我想隐藏并显示一些元素”。为此,我使用的是 videoPlaying[$index],它对于所有具有 ng-hide 的元素都可以正
预信息 我尝试将管理员和客户分开在不同的阶段或 View 中。 这样,管理员可以在将表发布给客户之前对其进行修改。 问题在表格 -> td 中有按钮来控制暂存、释放(显示)或恢复(隐藏)? 所以基本上
这个问题在这里已经有了答案: What are the nuances of scope prototypal / prototypical inheritance in AngularJS? (3
我有以下奇怪的情况 - Controller 片段 - $scope.filterNum = {0: 'filterVal1', 1: 'filterVal2', 2: 'filterVal3', 3
AngularJS 版本:1.3.8 JSFiddle: http://jsfiddle.net/uYFE9/4/ 我一直在开发一个小的 AngularJS 应用程序,遇到了一些问题。我在页面上有一个
我有一个范围对象,其中包含具有 3 个不同图像的对象。我在 div 内显示图像,该图像重复直到范围对象的长度。我有 3 个不同的 img 标签,它们具有 ng-if 属性,并且仅一次显示 3 个图像之
在 AngularJs 中没有提供 ng-enabled 指令。是否有任何适当的理由不在框架中提供该指令,因为当您可以使用 ng- 时,我们同时拥有 ng-show 和 ng-hide隐藏来实现我们的
我是一名优秀的程序员,十分优秀!