在插座中切换视图/控制器会导致属性绑定中断

时间:2012-08-08 11:21:48

标签: ember.js

我们正在构建一个应用程序,其中一部分涉及从列表中选择元素; 我们使用一个插座并在两个视图之间切换:一个显示当前选择的元素('detailView'),另一个显示可从('listView')中选择的所有元素的列表 - 它的工作方式类似于下拉列表。表示列表视图中当前所选元素的list元素也有一个类is-selected,它是一个绑定属性。

当我们从列表视图切换到详细视图时(由于用户点击,意味着他已经选择了元素),我们更新表示当前所选项目的对象。这会导致列表视图中列表元素的类属性绑定在Ember库中生成错误(在EmberHandlebars.bindClasses函数中)。

看起来所提到的函数正在尝试更新关于新值的属性绑定,并通过查找相应的HTML代码来实现。问题是此HTML目前不存在,因为我们已切换视图。

我做了一个小提琴,举例说明了我们要做的事情: http://jsfiddle.net/7k8n7/2/

如果您在本例中发现任何您认为不好的设计选择,请不要犹豫,提及它;但是,小提琴的要点只是在我们认为应该有效的代码片段中创建错误。

产生错误的代码是:

goToDetail : function(router, event) {
    router.transitionTo('detail');
    router.get('selectedModel').set('content', event.context);
}

如果在此功能中切换两行的顺序,则甚至会显示detail-view

0 个答案:

没有答案