视图绑定未定义
View binding undefined - Ember.js
所以我有一个有趣的问题。我有一个侧边栏,SortableStopView,它扩展了CollectionView其中我有一个可滚动的,可排序的'stop '列表用户可以点击进入那个stop的摘要页面。
还有SortableStopsController,一个用于按display_order
排序的ArrayController。事后看来,这个ArrayController不是必需的,但我不认为这是我的问题。
App.SortableStopController = Ember.ArrayController.extend
sortProperties: ['display_order']
loaded: false
stopsMoved: false
observeStuff: (->
console.log 'stops', @get 'content'
console.log 'loaded', @get 'loaded'
).observes 'loaded', 'content'
现在,在StopsIndexRoute,我有configController
。(我所有的路由扩展App.AuthenticatedRoute
覆盖setupController
,运行一些自定义代码,然后调用configController
。这是我在整个应用程序中使用的而不是setupController
)在这里,我将SortableStopController的内容设置为通过Ember Data获取的停止,并告诉控制器该数据已加载。
App.StopsIndexRoute = App.AuthenticatedRoute.extend
configController: (controller, model) ->
self = this
sortableStopCtlr = @controllerFor 'sortableStop'
@store.find('stop', route_id: model.get("route_id")).then (stops) ->
sortableStopCtlr.set 'model', stops
sortableStopCtlr.set 'loaded', true
这都被插入到stops.hbs
(它需要在所有停止路线上)与
{{view "sortableStop" content=controllers.sortableStop.arrangedContent loadedBinding="controllers.sortableStop.loaded" movedBinding="controllers.sortableStop.stopsMoved"}}
问题是下面的观察者退出了this is loaded undefined
。如果我注销content
,也会出现同样的情况。
App.SortableStopView = Ember.CollectionView.extend
observeLoaded: (->
console.log 'this is loaded', @get 'loaded'
).observes 'loaded'
这里没有显示,但是StopsController, StopsIndexController和StopsEditController都在它们的needs
数组中有'sortableStop'。
任何想法吗?
如果你使用的是最新版本的Ember,你的观察者不会开火,直到你的控制器完全设置好。要解决这个问题,将on('init')
添加到观察者:
observeLoaded: (->
console.log 'this is loaded', @get 'loaded'
).observes('loaded').on('init')
相关文章:
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- 使用Knockout自定义绑定更新JSTree
- 提高敲除自定义绑定的效率(经常开火)
- 安卓键盘未打开绑定到触摸启动的输入标签
- Knockout自定义绑定不会't更新
- 正在将逻辑从视图移动到自定义绑定
- 取消计算列的自定义绑定
- 如何使用segment.io's analystics.js在一个敲除自定义绑定中
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- Angular$watch未更新绑定
- 去掉foreach中的自定义绑定以获取迭代器
- 从敲除js自定义绑定中获取foreach的值
- KnockoutJS:将if绑定封装在自定义绑定中
- 更改自定义绑定处理程序,以便使用IIFE进行分配
- Knockout Js的自定义绑定处理程序更新依赖项
- d3.js enter()未正确绑定到数据-正在重新创建现有数据
- 自定义绑定在KnockoutJS 3.0中不再工作
- Knockout:在创建自定义绑定后,绑定未应用于页面的一部分
- 淘汰自定义绑定处理程序:$root未定义
- 如何为Hogan.js创建自定义绑定语法(未转义的HTML版本)