對於在指令模板中定義的輸入,我想將其模型綁定到其父作用域上的屬性。由於指令的多個實例在頁面上,因此隔離範圍是必需的。我想避免必須在指令聲明中將模型作爲屬性傳遞。看來這應該是可能的;但它不起作用。有沒有辦法從父範圍綁定到模型而不將其作爲屬性傳遞給指令的隔離範圍?
指令:
catalogApp.directive("cmFieldFilterDtv", function() {
return {
templateUrl: "/templates/directives/field-filter-dtv.html",
restrict: 'E',
scope: {},
link: function (scope, element, attrs) {
var field = attrs.fid;
var fieldCamel = field.toLowerCaseFirst();
scope.fid = 'filter' + field;
scope.model = scope.$parent['filters.' + fieldCamel];
scope.options = scope.$parent['configFilter' + field];
}
}
});
模板:
<input id="{{fid}}"
ng-model="model"
data-kendo-multi-select
data-k-options="options" />
頁:
<cm-field-filter-dtv fid="PartNumber"></cm-field-filter-dtv>
<cm-field-filter-dtv fid="PartType"></cm-field-filter-dtv>
<cm-field-filter-dtv fid="Status"></cm-field-filter-dtv>
選擇要輸入的更改不會得到推(通過模型綁定)母公司範圍的財產。
一般來說,我將指令視爲全功能封裝單元。因此,每個人都沒有「父母」的範圍。這聽起來像你想添加一個未定義的全局依賴到你的代碼,我通常認爲這是一個壞主意。也就是說,我認爲你可以將變量存儲在$ rootscope而不是$ scope中;那麼它應該可以在包含該指令的視圖的指令和控制器中訪問。 – JeffryHouser