AngularJS + Rails $ scope模型已更新但未触发重新渲染

时间:2014-11-14 14:13:32

标签: javascript ruby-on-rails angularjs

不确定我是否正确使用Angular。我基本上想要制作一个简单的链接/故事共享网站。

  var Story = $resource("api/stories/:id", {}, {
    query: { method: "GET", isArray: false }
  });

  Story.query().$promise.then(function (data) {
    $scope.stories = data.stories;
    $scope.test = 1;
  });

  $scope.submitForm = function(formData) {
    Story.save({}, formData, function(data) {
      $scope.$apply(function() {
        $scope.stories = data.stories;
        $scope.test = 2;
      });
    });
  }

$scope.test的变化得到反映,但不是故事。

编辑:嗯,如果我删除" ng-controller"

<ul ng-controller="storyController">
  <li ng-repeat="story in stories">{{ story.title }}</li>
  <p>{{ test }}</p>
</ul>

现在一切正常.....我甚至不确定为什么......

2 个答案:

答案 0 :(得分:0)

query()方法中,您将$scope.stories设置为数组但是,您似乎正在尝试将$scope.stories设置为我假设的单个对象。在$scope.stories更改时,您期望看到什么?故事列表中的新故事?如果是这样,您需要执行以下操作:

$scope.stories.push(data.stories);

您没有替换数组,而是要为其添加新索引。

答案 1 :(得分:0)

好的,显然答案是我已经定义了ng-view +一个已经将storyController分配给该视图的路径。我基本上通过添加ng-controller指令将它分配两次。