我試圖創建一個自定義指令,選項作爲屬性傳遞。 我注意到,貨幣過濾器只適用於數字,如果僅用於某些字符串屬性,它不起作用。如果我嘗試使用具有字符串屬性的這個過濾器,它不會產生任何結果..是這樣嗎? 和我如何使用貨幣過濾器的字符串值,如果我想?
var app = angular.module('myApp', []);
app.controller('defaultCtrl', ['$scope', function($scope) {
$scope.products = [
{
name: "Apples",
category: "Fruits",
price: 1.20,
expiry: 10
}, {
name: "Bananas",
category: "Fruits",
price: 2.42,
expiry: 7
}, {
name: "Pears",
category: "Fruits",
price: 2.02,
expiry: 6
}
];
}]);
app.directive('unorderedList', function() {
return function(scope, element, attrs) {
var data = scope[attrs["unorderedList"]];
if(angular.isArray(data)) {
var listElem = angular.element('<ul>');
var propertyExpression = attrs["listProperty"];
element.append(listElem);
for(var i = 0; i < data.length; i++) {
listElem.append(angular.element('<li>').text(scope.$eval(propertyExpression, data[i])));
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div id="wrapper" ng-controller="defaultCtrl">
<div class="panel panel-default">
<div class="panel-heading">
<h3>Products</h3>
</div>
<div class="panel-body">
<div unordered-list="products" list-property="price | currency"></div>
<div unordered-list="products" list-property="name | currency"></div>
</div>
</div>
</div>
</div>
你會期望貨幣返回蘋果,香蕉或梨?我認爲它工作正常。名稱的值都不能轉換爲貨幣。 –
它只是一個測試用例,是的,它沒有意義與這些值..但我一般問了一個問題..值可能會改變 –
是的,我明白這只是一個測試用例,但它是一個測試用例不會重複您所問的問題。無論如何,我只是複製了你提供了很多次的項目,並沒有看到性能問題。但是... –