我有一个autocompleteView,用于生成具有typeahead支持的TextField,并希望根据模型在其“tags”属性中设置的内容填充一些初始值。 autocompleteView是嵌套的。
我正在使用bootstrap-tags.js作为标记输入和样式化下拉菜单,App.ItemEditView
的{{1}}函数中的方法实例化标记输入元素。我也在使用Ember 1.0.0和Ember-Data 1.0.0-beta.4 + canary.c15b8f80
我知道我可以(但不应该)用'didInsertElement'方法初始化值
processChildElements
为此不允许观察mdoel?
我甚至不确定以这种方式访问模型是否有效/可取!
如何将此自动完成视图绑定到我的模型的“tags”属性,并观察它的变化?
this.set('value', this.get('parentView.controller.model.tags')
我的模板看起来像这样:
App.ItemEditView = Ember.View.extend({
autocompleteView: Ember.TextField.extend({
didInsertElement: function() {
console.log(this.get('parentView.controller.model.tags').toString());
Ember.run.scheduleOnce('afterRender', this, 'processChildElements');
},
processChildElements: function() {
this.$().tag({
placeholder: 'tags input',
//enable typeahead by specifying the source array
source: ['test', 'this', 'and', 'that'],
});
},
})
});
App.Router.map(function() {
this.resource('inventory', function() {
this.resource('items', function() {
this.resource('item', { path: ':item_id' }, function() {
this.route('edit');
});
});
});
});
答案 0 :(得分:0)
我没有正确地将上下文传递给我的嵌套视图(或根本没有)。我应该将嵌套value
视图的TextField
属性绑定到当前上下文的tags
属性(即当前模型),该属性恰好是给我们的模型按App.ItemEditController
,如此:
{{view view.autocompleteView valueBinding=this.tags}}
就是这样,这解决了它!