我有一个 autocompleteView 用于生成具有预输入支持的 TextField,并希望根据模型在其“tags”属性中设置的内容使用一些初始值填充它。autocompleteView 是嵌套的。
我将bootstrap-tags.js用于标记的输入和样式化的下拉菜单,下面App.ItemEditView
的processChildElements
函数中的方法实例化了标记输入元素。我也在使用Ember 1.0.0和Ember-Data 1.0.0-beta.4+canary.c15b8f80
我知道我可以(但不应该)初始化 'didInsertElement' 方法中的值,
this.set('value', this.get('parentView.controller.model.tags')
因为它不允许观察 mdoel?我什至不确定以这种方式访问模型是否有效/可取!
我如何将此自动完成视图绑定到我的模型的“标签”属性并观察它的变化?
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');
});
});
});
});
我的模板如下所示:
<script type="text/x-handlebars" data-template-name="items">
<div id="item">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="item">
<div id="item">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="item/edit">
<div id="tags">
{{view view.autocompleteView valueBinding="view.valueTags"}}
</div>
</script>
<script type="text/x-handlebars">
{{outlet}}
</script>