在 emberjs 中加载对象的正确方法是什么
What is the correct way to load in object in emberjs?
让我先描述一下我的用例。
作为用户,您应该能够创建作业,在创建此作业时,您需要指定工作字段。这些字段应该从我的 REST API 动态加载。作为EmberJS的新手,我现在真的不知道我应该如何在这些字段中加载,因为我正在JobNewController和路由中工作。
我应该以某种方式将它们加载到我的路线中吗?我一直在尝试这样的事情,但我无法让它工作,我也不太确定我在做什么。
MyApp.JobsRoute = Ember.Route.extend
setupController: (controller) ->
controller.set 'serviceFields', MyApp.ServiceField.find()
使用此模板
<p>Creating a new job</p>
<div class="ui input">
Select a service field
{{#each serviceFields }}
{{name}} sdf
{{/each}}
</div>
我也尝试像这样在控制器中执行此操作。
MyApp.JobsNewController = Ember.ObjectController.extend serviceFields: MyApp.ServiceField.find()
但这屈服和错误
Assertion failed: Your application does not have a 'Store' property defined. Attempts to call 'find' on model classes will fail. Please provide one as with 'YourAppName.Store = DS.Store.extend()'
我猜控制器代码是在初始化商店之前运行的。
我应该如何处理?
获取模型的正确方法是使用商店并查找该模型类型。(请原谅我的咖啡脚本,我用了一个转换器为我做)
MyApp.JobsRoute = Ember.Route.extend(setupController: (controller, model) ->
# return does nothing here
# this._super(controller,model); would do the default
controller.set "serviceFields", []
promise = @get("store").find("serviceField")
promise.then (records) ->
controller.set "serviceFields", records
)
这是更常见的方法,顺便说一句
MyApp.JobsRoute = Ember.Route.extend(model: ->
@get("store").find "serviceField"
)
相关文章:
- 打破承诺链的好方法是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- knex:根据结果创建数组的合适方法是什么
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 使用Modernizr检测移动设备最可靠的方法是什么
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 让会话值可用于JavaScript的好方法是什么
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么