Ниже мой HTML и Javascriptangularjs rootscope и изолированная сфера
<div ng-app="myApp" ng-controller="myCtrl">
{{firstname}}
<sample-directive></sample-directive>
</div>
JS
var app = angular.module("myApp", []);
app.run(function($rootScope){
$rootScope.firstname = "Root scope value"
});
app.controller("myCtrl", function($scope) {
});
app.directive("sampleDirective",function(){
return{
template:"<div>{{firstname}}</div>",
controller:['$scope',sampleDirectiveScope]
};
});
function sampleDirectiveScope($scope){
$scope.firstname = "scope value";
};
Я ожидаю "Root значения области" будет показана в выражении и «значение Scope " для отображения внутри метки директивы
Почему они оба отображают Значение области?
Не должно ли выражение {{firstname}}
получить значение от корнеплодов, так как я изменил имя только внутри контроллера директивы?
ах Гоча, поэтому я просто нужно добавить 'объем: правда,' в получить то, что я ожидал –
Это или 'scope: {}', в зависимости от того, что именно вы хотите достичь :) (Обычно я использую новую изолированную область, но это касается личных предпочтений, а также зависит от ваших потребностей. –
Спасибо за ссылку SO-ответа. Это было проницательно :) –