2015-06-26 46 views
2

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' 
     } 
}) 
+0

可能重複[如何動態地改變從控制器指令templateUrl(http://stackoverflow.com/questions/28139250/how-to-dynamically-change-templateurl- of-directive-from-controller) –

回答

1

我認爲你可以使用template和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" 
    }; 
}); 
+1

我怎麼說謝謝。它的工作,我現在找不到答案約3小時,它的工作。謝謝 – Shaxrillo

+0

@Shaxrillo很高興爲您服務:-) – Donal