使用angularjs UI我試圖將參數傳遞給我的模態。
事情是,項目是未定義的。我檢查了文檔等,我沒有得到我在這裏做錯了。
控制器 'newproject' 是一個調用下面的代碼:
var modalInstance = $modal.open({
templateUrl: 'app/projects/createTask.html',
controller: 'createtask as vm',
resolve: {
item: function() {
return 'itemValue';
}
}
});
裏面 '的CreateTask' 控制器我有以下代碼(顯示在這裏開始):
(function() {
'use strict';
var controllerId = 'createtask';
angular.module('app').controller(controllerId,
['common', '$modalInstance', createtask]);
function createtask(common, $modalInstance, item) {
//why is item is undefined here?!?!?!
請注意,'newproject'控制器位於'newProject.js'內,'createtask'控制器位於createTask.js。
爲了完整性起見,這裏是完整的控制器:
newProject.js:
(function() {
'use strict';
var controllerId = 'newproject';
angular.module('app').controller(controllerId,
['$location', '$modal', '$routeParams', '$window', 'common', 'config', 'datacontext', 'utility', projectdetails]);
function projectdetails($location, $modal, $routeParams, $window, common, config, datacontext, utility) {
var vm = this;
function editTask(task) {
var modalInstance = $modal.open({
templateUrl: 'app/projects/createTask.html',
controller: 'createtask as vm',
resolve: {
item: function() {
return 'itemValue';
}
}
});
modalInstance.result.then(function (newTask) {
task = newTask;
vm.projectCost += newTask.cost;
});
}
}
})();
createTask.js:
(function() {
'use strict';
var controllerId = 'createtask';
angular.module('app').controller(controllerId,
['common', '$modalInstance', 'item', createtask]);
function createtask(common, $modalInstance, item) {
if (item) {
alert(item);
} else
alert('undefined');
}
})();
您還需要列出項目以及依賴列表中。您在dep列表中的參數個數必須與構造函數中的參數個數相匹配。錯字? – PSL 2014-09-19 15:20:01
@PSL 每當我將'item'添加到依賴關係數組中時,我會收到一個錯誤,提示「unknown provider:itemprovider」。 – 2014-09-19 15:31:26
當你打開一個模式? – PSL 2014-09-19 15:33:53