bor*_*ytm 4 javascript model-view-controller angularjs angular-ui
我正在尝试在我的Web应用程序中包含一个angular-ui模式,但是我遇到了设置所有内容的问题.
文档表明你可以使用$ modalInstance将子控制器注入父控制器,但我不太明白如何这样做.
这是当前的代码(它直接来自文档中的模态演示):
angular.module('myApp.controllers', []).
controller('addContent', function ($scope, $http, $modal, $log){
//modaltest
$scope.items = ['item1', 'item2', 'item3'];
$scope.addTerm = function () {
var newTerm = $modal.open({
templateUrl: 'newTermModal.jade',
controller: newTerms,
resolve: {
items: function () {
return $scope.items;
}
}
});
newTerm.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}).
controller("newTerms",function($scope, $modalInstance, items){
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
Run Code Online (Sandbox Code Playgroud)
当我像现在一样运行应用程序并单击按钮打开模态(addTerm函数)时,应用程序崩溃,错误"ReferenceError:newTerms未定义".
正如我上面提到的,angular-ui站点表明你可以使用$ modalInstance注入一个控制器,但我还是无法弄清楚如何.任何帮助将不胜感激!
编辑
在Chandermani建议的路径名上添加引号后,似乎模态正在加载当前页面而不是指定的模板.
我已将路径更改为以下内容:templateUrl:
$scope.addTerm = function () {
var newTerm = $modal.open({
templateUrl: './views/partials/newTermModal.jade',
controller: 'newTerms',
resolve: {
items: function () {
return $scope.items;
}
}
});
Run Code Online (Sandbox Code Playgroud)
该问题的屏幕截图如下:
知道是什么原因引起的吗?
那么你可以将控制器作为字符串值传递.我为模态采用了默认的演示示例,并将其更改为传递控制器名称而不是控制器本身.
看我的plunker http://plnkr.co/edit/jpJX4WvHw0SSYm3pAAzq?p=preview
所以这样的事情
controller: 'newTerms',
应该管用.
| 归档时间: |
|
| 查看次数: |
10829 次 |
| 最近记录: |