我有两个具有相同属性的数组(transaction.blackCard
和transaction.whiteCard
)。控制器将颜色设置为scope.cardSelected.color
,但指令已经呈现。在视图中,我对黑白卡有相同的输入,因此该指令负责听取字段的事件。
我需要在scope.cardSelected.color
更改为控制器时重新呈现指令,以便someVar
刷新其值。
我只复制了一些代码片段。
指令:
directive('someComponent', ['$rootScope', '$timeout',
function($rootScope, $timeout, ) {
var template = '\<div> THIS IS MY TEMPLATE </div>';
return {
restrict: 'E',
template: template,
scope: {
cardSelected: '=cardSelected',
transaction: '=transaction'
},
link: function(scope, element) {
var someVar = 'transaction.blackCard';
if(scope.cardSelected.color === 'WHITE'){
someVar = 'transaction.whiteCard';
}
scope.$watch(someVar+'.letter', function(newValue) {
....
});
scope.$watch(someVar+'.shape', function(newValue) {
....
});
scope.$watch(someVar+'.character', function(newValue) {
....
});
}
};
}]);
控制器:
controller('someColorCardCtrl', ['$scope', function ($scope){
$scope.selectCardColor = function(color){
$scope.cardSelected.color = color;
});
});
抱歉我的英文!