0

这是我关于stackoverflow的第一个问题。(我知道我在引号中遇到了很多困难..)我遇到了这个问题,下面的代码片段让我遇到了以下错误:

TypeError:无法
在 ui-bootstrap-tpls-0.12 的 Object.invoke (angular.js:3762) 的 $scope.addValue.$modal.open.resolve.goals (app.js:59) 处读取未定义的属性“目标” .1.js:2118 在 Object.forEach (angular.js:329) 在 getResolvePromises (ui-bootstrap-tpls-0.12.1.js:2116) 在 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 演示。

4

2 回答 2

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 参数。

于 2015-04-29T00:50:52.413 回答
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 中可用

于 2015-04-29T00:51:16.497 回答