我一直在開發一個AngularJS指令,它應該作爲一個獨立的小部件工作,它可以通過設置對象形式的屬性進行配置。我的主要目標如下:將動態數據傳遞給angularjs指令的正確方法
- 根據在屬性中傳入的對象執行內部指令的處理。處理確實涉及獲取REST API響應。所以我正在使用控制器來實現這一點。
- 在我的指令做了一些處理之後,它可能會更改我的父控制器應該能夠更改的對象。
下面是覆蓋我的目標的示例代碼。
指令用法:
<post-listing page-id="currentPage.id" config="postConfig" posts="posts" />
代碼指令
'use strict';
angular.module('myApp')
.directive('postListing', function() {
return {
templateUrl: '/views/directive.post-listing.html',
restrict: 'EA',
scope: {
page_id:"=",
config:"=",
posts:"=",
},
controller: "DirectivePostListingCtrl"
};
});
代碼指令的控制器:
代碼模板:
<h4>Displaying Posts for {{page.title}}</h4>
<ul>
<li ng-repeat="p in posts" >{{p.title}}</li>
</ul>
當我運行此代碼時,它說$ scope.page_id要麼是「undefined」要麼是它說「currentPage.id」(基於運算符selected =或@),我希望它是currentPage.id。
請建議。
在此先感謝。
您應該爲'$ scope.page_id'嘗試'$ watch'一次,我相信這些會使用某些服務。所以當控制器初始化時它不可用。或者你可以使用'$ broadcast'。 – Satpal
你能列出控制器中的代碼如何訪問page_id和config嗎? – elaijuh