我有一個彈出窗體,它有很多選項卡。無法從子UI訪問父控制器的方法
它的這樣的:
index.js
vm.openCreateOrEditPropertyModal = function (resolveProperty) {
var modalInstance = $uibModal.open({
templateUrl: '~/App/tenant/views/propertymanagement/createOrEditPropertyModal.cshtml',
controller: 'tenant.views.propertymanagement.createOrEditPropertyModal as vm',
resolve: {
resolveProperty: function() {
return resolveProperty;
}
}
});
};
標籤是這樣的:
createOrEditPropertyModal.cshtml
<uib-tabset class="tab-container tabbable-line" type="pills">
<uib-tab heading="@L("PropertyInformation")">
<div ng-include="'~/App/tenant/views/propertymanagement/tabs/propertyForm.cshtml'"></div>
</uib-tab>
</uib-tabset>
createOrEditPropertyModal.js
(function() {
appModule.controller("tenant.views.propertymanagement.createOrEditPropertyModal", [
"$scope", "resolveProperty", "localStorageService", "$uibModalInstance", function ($scope, resolveProperty, localStorageService, $uibModalInstance) {
var vm = this;
//to close the pop up
vm.cancel = function() {
$uibModalInstance.close();
};
}
]);
})();
propertyForm.cshtml
<div ng-controller="tenant.views.propertymanagement.tabs.propertyForm as vm">
<button type="button" ng-click="vm.cancel()">@L("Close")</button>
</div>
propertyForm.js
(function() {
appModule.controller("tenant.views.propertymanagement.propertyForm", [
"$scope", "resolveProperty", "localStorageService", function ($scope, resolveProperty, localStorageService) {
var vm = this;
}
]);
})();
以上設置工作fine.Now我需要訪問cancel()
方法在createOrEditPropertyModal.js
文件從子表單(即但是它並沒有被解僱。你能告訴我該怎麼做嗎?我嘗試過這樣的ng-click="$parent.cancel()"
。但它不起作用。
其實我的設置是這樣的,我已經更新了問題。請參閱。但是'cancel()'方法沒有被解僱。這是由於控制器的名稱相同嗎?我的意思是關於'vm' – Sampath
可能是..請嘗試更改名稱..因爲它必須工作 –
這是因爲您的控制器'propertyForm as vm'將'createOrEditPropertyModal'映射爲vm'。 – fodma1