2016-04-06 8 views
1

Im neuen zu eckigen und im Angesicht folgenden Problem nach eckigen Version Migration. Wir migrieren von Version 1.2.6 auf Version 1.4.3. Es folgt ein Beispielcode, der unter Verwendung von eckiger Version 1.2.6 implementiert wurde;Angular Direktive nicht bindende Ausdruck mit Version Migration

Code mit eckigen 1.2.6 Version getan.

--- --- 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); 
      }); 

     } 
    }; 
}]); 

Ich glaube etwas stimmt nicht mit 'testDirective.js'. Was hier passiert ist, dass "Status" nur für den ersten Bereich bindend ist. Bitte teile deine wertvollen Gedanken und Vorschläge.

Antwort

0

@Navin können Sie es wie scope ["config"] überprüfen. Tippen und sehen ??

Verwandte Themen