这是我关于stackoverflow的第一个问题。 (我知道我用引号挣扎了很多..)我遇到了这个问题,下面的代码片段给我留下了以下错误:
我的代码中的“目标”相当于“灵感来自”代码中的“项目”。TypeError:无法读取未定义的属性“目标” at $ scope.addValue。$ modal.open.resolve.goals(app.js:59) at Object.invoke(angular.js:3762) 在ui-bootstrap-tpls-0.12.1.js:2118 at Object.forEach(angular.js:329) at getResolvePromises(ui-bootstrap-tpls-0.12.1.js:2116) at Object。$ modalProvider。$ get。$ modal.open(ui-bootstrap-tpls-0.12.1.js:2151) 在Scope。$ scope.addValue(app.js:53) 在Parser.functionCall(angular.js:10294) 在angular.js:18229 在Scope。$ get.Scope。$ eval(angular.js:12075)
此消息似乎来自ctrlAddValue控制器,其中包含'目标'参考:function($ scope,$ modalInstance,goals)
感谢您的帮助!
罪魁祸首:
app.controller("ctrlCtx", function ($scope, $state, $stateParams, $modal, $window) {
$scope.goals = "A good goal";
$scope.addValue = function (size, $scope) {
var modalInstance = $modal.open({
templateUrl: 'templates/addValue.html',
size: "lg",
controller: "ctrlAddValue",
resolve: {
goals: function () {
return $scope.goals;
}
}
})
modalInstance.result.then(
function (selectedItem) {
},
function () {
});
}; });
这是'ctrlAddValue'控制器代码。
app.controller('ctrlAddValue', function ($scope, $state, $modalInstance, goals) {
$scope.addValue = function(){
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss();
};
});
这是基于模态的ui.bootstrap演示。
答案 0 :(得分:1)
app.controller("ctrlCtx", function ($scope, $state, $stateParams, $modal, $window) {
$scope.goals = "A good goal";
$scope.addValue = function (size, $scope) {
您将$ scope作为本地参数传递,并且可能像$ scope.addValue(something)一样调用此函数;使本地$ scope未定义。
从addValue函数中删除$ scope参数。
答案 1 :(得分:0)
将你的ctrlCtx设置为如下所示:
app.controller("ctrlCtx", function ($scope, $state, $stateParams, $modal, $window) {
$scope.goals = "A good goal";
$scope.addValue = function () {
var modalInstance = $modal.open({
templateUrl: 'templates/addValue.html',
size: "lg",
controller: "ctrlAddValue",
resolve: {
goals: function () {
return $scope.goals;
}
}
})
};
});
此目标应在ctrlAddValue
中提供