我有一个带有指令的控制器/视图。该指令更改控制器范围正在观察的变量。这很有效,直到我缩小一切。一旦缩小,没有错误,但手表处理程序不再触发。
我的应用由grunt
使用yeoman
角度生成器编译。经过大量的工作,它正确地构建了一切(通过grunt serve:dist
)。除了监视功能处理程序不工作之外,应用程序的其余部分都很好。在开发过程中,一切都很完美。
我非常确定我的所有依赖都被宣布为避免任何缩小问题。我还使用ngAnnotate
来清理任何我错过的人。可能是什么问题呢?
这是一个简单的例子:
控制器:
(function(){
'use strict';
angular
.module('app')
.controller('MyCtrl', MyCtrl);
MyCtrl.$inject = ['$scope', ...];
function MyCtrl($scope, ...) {
$scope.color = null;
$scope.$watch('color', function(newVal, oldVal) {
console.log('Color changed');
});
};
})();
查看:
<mydirective color="color"></mydirective>
指令:
(function(){
'use strict';
angular
.module('app')
.directive('mydirective', mydirective);
function mydirective() {
return {
restrict: 'E',
scope: {
color: '=color'
},
templateUrl: 'directive.html',
link: function($scope, element, attrs, form) {
$scope.clickHandler = function(val) {
$scope.color = val;
};
}
};
}
})();
指令模板:
<button ng-click="clickHandler('blue')"></button>
答案 0 :(得分:0)
经过多次试验和错误,这最终成为我的第三方凉亭组件缩小的问题(特别是我认为它是jquery-ui
和ui-date
)。与我最初的想法无关,但有人可能会以相同的症状结束。我最终不得不手动回到我的grunt文件的每一步,直到它工作(这是我删除vendor.js
中额外未使用的依赖项的时候)