首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有ngInit - ngRepeat的angularjs - ngRepeat不会刷新渲染值

带有ngInit - ngRepeat的angularjs - ngRepeat不会刷新渲染值
EN

Stack Overflow用户
提问于 2013-03-12 14:55:24
回答 3查看 31.7K关注 0票数 24

我有一个数组,它是用ngRepeater显示的,但是在这个指令中,我使用了ngInit指令,它执行函数,它应该返回要显示的对象。一切都运行得很好,但当我添加“新建”按钮时,我向数组添加了新的值,然后函数"SetPreview“只执行一次,我认为函数应该根据数组值的大小来执行。我该怎么做呢?

用户界面:

代码语言:javascript
运行
复制
<body ng-app>

  <ul ng-controller="PhoneListCtrl">
      <button ng-click="add()">Add</button>
    <li ng-repeat="phone in phones" ng-init="displayedQuestion=SetPreview(phone);">
      {{displayedQuestion.name}}
      <p>{{displayedQuestion.snippet}}</p>
    </li>
  </ul>
</body>

控制器:

代码语言:javascript
运行
复制
function PhoneListCtrl($scope) {
  $scope.phones = [
    {"name": "Nexus S",
     "snippet": "Fast just got faster with Nexus S."},
    {"name": "Motorola XOOM™ with Wi-Fi",
     "snippet": "The Next, Next Generation tablet."},
    {"name": "MOTOROLA XOOM™",
     "snippet": "The Next, Next Generation tablet."}
  ];

    $scope.add = function(){
        this.phones.push({name:'1', snippet:'n'});
    };        
    $scope.SetPreview = function(phone)
    {
        //here logic which can take object from diffrent location
        console.log(phone);
        return phone;
    };
}

Sample is here - jsfiddle

编辑:

Here is more complicated sample: -> Now的手机集合是空的,当你点击Add按钮时,新的项目被添加并被设置为可编辑的(你可以改变文本字段中的值),当ngRender被执行时,SetPreview函数返回可编辑的对象(它类似于预览)。现在再次尝试单击Add按钮,正如您所看到的,第一项的可编辑值仍然显示给用户,但我想刷新整个ng-repeater。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15355122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档