Я написал пользовательские директивы к значениям формата, Обычай директиве приводятся ниже«scope.watch не является функция» ошибка в Angular.js
var directiveapps = angular.module('myApp.currencyValues', []);
directiveapps.directive('currencyValue', function() {
return{
scope: {
data: '=items'
},
template: '<div>$ {{value|number}}</div>',
link: function(scope){
scope.value = Math.round(scope.data* 100)/100;
}
};
});
Этой директива будет форматировать значение в валюту и также он округляет десятичные точки. И я назвал эту директиву подобным взглядом.
<div class="overallsummary_meter_txt left">
Total Price<br>
<span currency-value items="totalPrice" class="orange_txt"></span>
</div>
Это прекрасно работает. Но я выяснил некоторые проблемы, когда значение передается в представление через ajax. Директива выполняется в самый момент загрузки вида, если значение требует времени для загрузки, тогда не будет никакого значения в переменной позиций. В результате этого я получаю пустое значение от директивы. Чтобы решить эту проблему, я немного изменил свою директиву, как показано ниже.
var directiveApps = angular.module('gogocarApp.currencyValues', []);
directiveApps.directive('currencyValue', function() {
return {
transclude: true,
scope: {
items: '=items'
},
template: '<div>$ {{items|number}}<span ng-transclude></span></div>',
link: function(scope){
scope.watch('items', function() {
scope.items = scope.items ? Math.round(scope.items* 100)/100 : 0;
});
}
};
});
я добавил scope.watch функцию а решить свои существующие issues.This отлично работает для всех моментов времени, и я получаю отформатирован и правильные значения в качестве выхода директивы.
Но как после эффекта этого, на каждой странице, которая использует эту директиву показывает консоль ошибки scope.watch не является функция
1.How я могу устранить эту ошибку консоли?
2. Нужно ли мне снова изменить директиву?
Он должен быть '$ watch', а не' watch'. – str
это 'scope. $ Watch', а не' $ scope.watch' – kukkuz