【问题标题】:Updating value on view angular更新视图角度的值
【发布时间】:2016-01-19 00:26:18
【问题描述】:

我有一个 Angular 表单,它提交给 API,返回 201 状态代码,以及所创建对象的 ID 和令牌。我的想法是使用该标记打开一个模式并将其显示给用户。

$scope.object.token 的值已更新,但我无法在视图中更新该状态。我试过了,$scope.$apply() 我得到了一个error $digest already in progress when calling $scope.$apply()。我也试过$timeout(),但它没有更新视图。

处理该行为的控制器是:

angular.module('myApp').controller('ObjectCtrl', ['$scope', 'user', 'object', '$routeParams', '$location', '$uibModal',
  function ($scope, user, object, $routeParams, $location, $uibModal, displayToken) { 

    $scope.object = {
      user_id: user.currentUser
    }

    $scope.create_object = function() {
      var promise = object.create($scope.object);
      promise.then(function(data){
      var token = data.data.token;

      var modalInstance = $uibModal.open({
        animation: $scope.animationsEnabled,
        templateUrl: '/app/views/modal_submit_token.html',
        controller: 'ObjectCtrl',
        resolve: {
          displayToken: function () {
            $scope.object.token = token;
          }
        }
      });
    });
  };
}]); 

在我的 html 上,

<p><b>{{ object.token }}</b></p>

【问题讨论】:

    标签: javascript angularjs angularjs-scope angularjs-controller


    【解决方案1】:

    要传递参数,您需要使用解析并在控制器中注入项目

    $scope.Edit = function (Id) {
       var modalInstance = $modal.open({
          templateUrl: '/app/views/admin/addeditphone.html',
          controller: 'EditCtrl',
          resolve: {
             editId: function () {
               return Id;
             }
           }
        });
    }
    

    现在如果你会这样使用:

    app.controller('EditCtrl', ['$scope', '$location'
           , function ($scope, $location, editId)
    

    在这种情况下,editId 将是未定义的。你需要注入它,像这样:

    app.controller('EditCtrl', ['$scope', '$location', 'editId'
         , function ($scope, $location, editId)
    

    现在它可以正常工作了,我多次遇到同样的问题,一旦注入,一切都开始工作了!

    字体:Pass parameter to modal

    【讨论】:

    • 我在使用同一个控制器作为模态,我还需要注入它吗?
    • 是的! modal的控制器是动态绑定
    • 所以对于我的情况,我必须将 editId 函数体替换为 $scope.object.token = token ?
    • 我用你的想法更新了;)但仍然没有更新视图:(
    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2015-06-26
    相关资源
    最近更新 更多