AngularJS - 来自控制器的刷新指令

use*_*405 4 angularjs angularjs-directive

我有一个包含基于范围变量的HTML文件的指令.当第一次加载HTML时一切都很好.但是当范围变量由ng-clic改变时,我无法回忆指令.

这是我的指示:

my.directive('myType', function() {
return {
    restrict: 'A',
    replace: true,
    link: function($scope, element, attrs) {          
          var myHTML;
          if ($scope.aType==1) myHTML = "aaaa";
          if ($scope.aType==2) myHTML = "bbbb"; 

          $scope.contentUrl = 'library/template/tmp-' + myHTML + '.html';
    },
    template: '<div ng-include="contentUrl"></div>'
}});
Run Code Online (Sandbox Code Playgroud)

$ scope.aType是在ng-click上更改的范围变量.提前致谢.

Ami*_*ich 6

您需要watch在aType或某种事件上添加一个以使代码运行多次(在链接时):

这样的事情:

link: function($scope, element, attrs) {       
         $scope.$watch('aType', function(newVal, oldVal){
                   var myHTML;
                   if ($scope.aType==1) myHTML = "aaaa";
                   if ($scope.aType==2) myHTML = "bbbb"; 
                   $scope.contentUrl = 'library/template/tmp-' + myHTML + '.html';
         });   
    }
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE.