在angularjs中重新渲染指令模板

时间:2017-09-14 22:28:05

标签: javascript angularjs angularjs-directive renderscript

我有两个具有相同属性的数组(transaction.blackCardtransaction.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;
    });
});

抱歉我的英文!

0 个答案:

没有答案