2017-04-11 54 views
1

我是Ember的新手,我试图做一个简单的演示应用程序,其中列表按钮被按下时使用不同的数据重新渲染。在ember.js中重新绑定模型到列表中的问题

这是我尝试的一个运行实例,按SHOW LIST按钮显示鸣叫名单,并结合工作正常,第一次:http://jsfiddle.net/0xnpav6L/21/

以下是在代码中的两个地方我我试图将模型重新绑定到列表中:

1)在ApplicationController中 - 我尝试将bindNewModel操作绑定到MODIFY按钮,但似乎没有工作。

2)在ListController中 - 尝试绑定bindNewModel动作到所有列表项(当按下任何列表项时),但也似乎没有工作。

App.ApplicationController = Ember.ObjectController.extend({ 
      actions: { 
       bindNewModel: function() { 
        console.log(App.ListController); 
        this.set('model', renderTweets()); 
       } 
      } 
     }); 

    App.ListController = Em.ArrayController.extend({ 
      init: function() { 
       this.set('model', renderTweets()); 
      }, 
      actions: { 
       bindNewModel: function() { 
        this.set('model', renderTweets()); 
       } 
      } 
     }); 

任何帮助都会被处理。

+0

如果你新来的烬,为什么你使用烬1.8“?您正在使用的很多模式在最新的2.12版ember版本中被删除/弃用。 – Lux

+0

不,你没有。这仍然是'1.8'。检查资源面板。你的代码甚至不会用'2.12'运行。像'ArrayController'之类的东西从'2.0'开始从烬中移除。另外请注意,您到'2.12'的链接无效。您的整个代码都建立在过时的示例/教程上。检查'ember-cli',最新的ember版本的指南,'ember-twiddle'而不是小提琴,并且可能加入闲置频道[寻求帮助。在这里你可以找到一个链接。](https://emberjs.com/community/) – Lux

回答

1

勒克斯对他的评论绝对正确;你使用的是相当老的版本;我建议使用ember twiddle来演示你的实验。

无论如何;关于您的代码,您的Application.Controller上的模型与#/list呈现的内容无关。因此,我仅对ListController进行了一些修改,以便在点击某个项目时更新内容。我设置了model.data而不是model本身,并在我使用的句柄栏中使用{{#each model in this.model.data}},以便它遍历模型的数据属性。请检查以下jsfiddle以查看它是否正确更新。

再次,如果您阅读official Ember Guide并开始使用Ember的当前版本2.12.0,它应该会更好。