有没有办法用范围或其他值更新指令链接?

时间:2015-06-26 16:58:58

标签: angularjs angularjs-directive angularjs-scope

我有dC指令

app.directive('dC', function($rootScope) {
    return {
        restrict: 'AE',
        link: function(scope, element, attrs) {},
        templateUrl: function(elem, attrs) {
            return $rootScope.somePosiT
        }
    }
});

我想访问我的控制器内部,因为无论如何我可以实现它以便在点击时动态更改我的指令位置

app.controller('appCtrl', function($scope, $rootScope) {
        clk: function() {
            $rootScope.somePosiT = 'views/1.html'
        }
})

1 个答案:

答案 0 :(得分:1)

我认为你可以使用模板和ng-include而不是templateUrl来实现。我认为在范围值可用之前调用templateUrl。你可以尝试这样的事情:

app.directive('dC', function($rootScope) {
  return {
    restrict: 'AE',
    link: function(scope, element, attrs) {},
    template: '<div ng-include="somePosiT"></div>'
  };
});

app.controller('appCtrl', function($scope, $rootScope) {
  $scope.clk = {
    somePosiT: "path/to/template.html"
  };
});