Angular指令不将表达式与版本迁移绑定

时间:2016-04-06 15:23:50

标签: angularjs

我是角色版本迁移之后的角色和即将面临的问题。我们从版本1.2.6迁移到版本1.4.3。以下是使用angular ver 1.2.6实现的示例代码;

使用角度1.2.6版本完成的代码。

--- JSP ---

<div>
<span call-test config="testConfig.test1" status="getStatus" value="testValue"></span>                                  
</div>
.
.
.
<div>                           
<span call-test config="testConfig.test2" status="getStatus" value="testValue"></span>
</div>

--- testCtrl.js ---

$scope.testConfig = {
    test1 : {name: "Test1", type: 0},
    test2 : {name: "Test2", type: 1}
};
.
.
.

$scope.getStatus = function(arg){
switch(arg) {
        case 1 :

            return (validate $scope.arg and return true or false);
        case 2 :

            return (validate $scope.arg and return true or false);
        case 0 :

            return (validate $scope.arg and return true or false);
        default :

            return false;
    }
}   

--- testDirective.js ----

angular.module('com.test.directives', [])
.directive('callTest', ['$timeout', function($timeout) {

var callTest = function(element, scope){

    $timeout(function(){
        var statusAction = scope.status(scope.config.type);// bind value only for first span. but works fine if we pass 'scope.config'.

    }, 100);

};

return {
        restrict: 'EA',
        scope:{
            config:'=',
            status:'&'          
},
        link: function(scope, element, attrs) {
           var statusAction = scope.status();
           scope.$watch('value', function(){
               callTest(element, scope);
           });

        }
    };
}]);

我认为与testDirective.js&#39;有关的事情不正确。这里发生的是,&#39; status&#39;仅限第一个跨度的绑定。请分享您宝贵的意见和建议。

1 个答案:

答案 0 :(得分:0)

@Navin你可以像范围一样检查它[&#34; config&#34;]。输入并看看??