Tôi đang có hai chỉ thị tùy chỉnh trong ứng dụng angularJS của mình. Một hành động như cha mẹ và hành động khác như đứa trẻ. Tôi đang cố gắng truy cập phạm vi của phụ huynh trong chỉ thị trẻ em. Nhưng tôi không nhận được kết quả mong muốn.Phạm vi truy cập chỉ thị con tùy chỉnh của phụ huynh
<div ng-controller="CountryCtrl">
{{myName}}
<div ng-controller="StateCtrl">
<state nameofthestate="'Tamilnadu'">
<city nameofthecity="'Chennai'"></city>
</state>
</div>
</div>
và kịch bản của tôi trông giống như
var app = angular.module("sampleApp",[]);
app.controller("CountryCtrl",function($scope){
$scope.myName = "India";
});
app.controller("StateCtrl",function($scope){
});
app.directive("state",function(){return {
restrict : 'E',
transclude: true,
scope : { myName : '=nameofthestate'},
template:"** {{myName}} is inside {{$parent.myName}}<br/><ng-transclude></ng-transclude>"
}});
app.directive("city",function(){return {
restrict : 'E',
require:'^state',
scope : { myName : '=nameofthecity'},
template:"**** {{myName}} is inside {{$parent.myName}} which is in {{$parent.$parent.myName }}<br/> "
}});
Tương ứng JSFiddle sẵn trong https://jsbin.com/nozuri/edit?html,js,output
Kết quả mà tôi đang nhận được là
India
** Tamilnadu is inside India
**** Chennai is inside India which is in Tamilnadu
và sản lượng dự kiến là
India
** Tamilnadu is inside India
**** Chennai is inside Tamilnadu which is in India
Có ai có thể dạy tôi điều tôi đang làm sai ở đây không?
xin lỗi, nhưng fiddle của bạn không hoạt động đối với tôi. –
hi http://stackoverflow.com/questions/23437113/get-property-value-from-parent-directive-within-child-directive điều này có thể giúp bạn trông giống như những gì bạn muốn làm –
Bạn có thể tạo một transclude tùy chỉnh với 'transclude: 'element''. Hàm khởi tạo có sẵn trong 'liên kết: hàm (phạm vi, phần tử, attrs, Ctlr, transclude) {}' – gr3g