- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ember.js 模型和 Controller 设置,如下所示:
//model
App.Order = Ember.Object.extend({
content: null,
create: function(data) {
this.set('content', data);
return this._super();
}
});
//orders controller
App.ordersController = Ember.ArrayController.create({
content: [],
init: function() {
var self = this;
var orders = [];
$.getJSON('js/data.json', function(data) {
data.forEach(function(item) {
var order = App.Order.create(item);
orders.push(order);
});
self.set('content', orders);
});
},
selectItem: function(data) {
alert(data);
}
});
具有以下 View :
{{#each App.ordersController}}
<div {{action selectItem target="App.ordersController"}}>{{order_number}}</div>
{{/each}}
它会打印出订单列表,并通过单击操作来提醒相应的项目。这很好用。
我想要做的是在单独的 View 中显示单击的项目,最终目标是创建一个显示订单详细信息的 float 对话框。我是 ember 新手,不知道应该如何实现。我有一个函数 selectItem
,它会警告单击的订单,但我需要将其链接到单独的 View 并打印订单详细信息。
我是否应该将所选项目存储在具有相应 View 的单独 Controller 中,并在单击 selectItem
时更新它?或者我可以从ordersController 更新一个单独的 View 吗?非常感谢任何建议。
最佳答案
当您使用路由器时,ember 会为您实例化您的类。通过指定 "orders"
路由来查找名为 orders
的模板和名为 OrdersController
的 Controller (如果找不到)为您生成一个。 (为了清楚起见,我省略了 Controller )。要从 json 源加载模型,您可以查看 ember-data。
这是一个jsfiddle所以你可以稍微摆弄一下。
你绝对应该看看here这些是 Ember 的指南,可以真正帮助您。文档变得越来越好。 :)
JS:
window.App = App = Em.Application.create();
//model
App.Order = Ember.Object.extend({
order_number: null,
});
//we create 2 routes one for all the order and one per specific order
App.Router.map(function(){
this.resource('orders', { path: "/" });
this.resource("order", { path: "/:order_id" });
});
//the route supplies the model and handles the event to transition to a new route.
App.OrdersRoute = Em.Route.extend({
events: {
selectItem: function (orderId) {
//select the order by the "orderId" you want as a model for your new view.
this.transitionTo("order", order);
}
},
model: function(){
return content; //an array containing the orders;
}
});
//supplies the model for the "order" route by selecting one acording to the params;
App.OrderRoute = Em.Route.extend({
model: function(params){
return order; //select an object from the array according to the params
},
});
哈佛商学院:
<script type="text/x-handlebars" data-template-name="orders">
{{#each controller}}
<!-- this calls the event handler "selectItem" on the ordersroute -->
<div {{action "selectItem" order_number}}>{{order_number}}</div>
{{/each}}
<!-- this is handled by "App.OrderRoute" -->
<a href="#/3"/>with a direct link</a>
</script>
<script type="text/x-handlebars" data-template-name="order">
{{content.order_number}}
{{#linkTo "orders"}}Back to orders{{/linkTo}}
</script>
关于javascript - ArrayController 中某个项目的单独 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498851/
我在添加一个数组 Controller 作为另一个数组 Controller 的项目 Controller 时遇到问题。 我得到的错误是: Error while loading route: Typ
我在 ember.js 中遇到以下问题。子 Controller 取决于父 Controller 中的选定值以确定其内容。在数据库中,一个 child 有一个 parent_id 引用。 App.pa
我有一个 EmailsController (ArrayController),它存储所有的电子邮件。我有一个 EmailController (ObjectController),它有一个参数,用于
我在保持我的数组与模板完全同步时遇到了一些问题,ArrayController 正在关注被推送、删除和更新的对象。然而,ArrayController 正在过滤结果,当其中一个对象发生变化并且它的新属
我有一个起始页面,要求用户输入 apiKey。通过该表单数据,我将其传递到我的 deals 路由,然后该路由根据输入的 apiKey 获取相关数据。 我的问题是,当我直接使用 URI 中的 apiKe
我有一个加载多个模型的 Route: App.AppRoute = Ember.Route.extend({ model: function() { return Ember.RSVP.h
我有一个 ember.js 模型和 Controller 设置,如下所示: //model App.Order = Ember.Object.extend({ content: null, c
如何在 Ember.js 1.0pre 中使用 ArrayController? 来自文档: MyApp.listController = Ember.ArrayController.create()
我正在尝试重定向到 ArrayController 中的第一项。我发现了一些与此相关的其他问题,但没有一个似乎有效的答案(发生了很多变化,所以这是可以理解的)。 Yehuda 的一个特别回答 here
我有以下 jsbin:http://jsbin.com/okoxim/4/edit FilteredContent 是一个计算属性,用于过滤我的 Controller 的内容。我想知道如何对计算属性进
我有一个绑定(bind)到 TableView 的数组 Controller 。我需要返回表中选中的复选框的数量。 arraycontroller 充满了 nsmutabledictionaries。
现在看看 ArrayController,我发现了两种实现它们的方法: http://awardwinningfjords.com/2011/12/27/emberjs-collections.htm
我有一个管理一组对象的 ArrayController。我在上面定义了一个 itemController,这样每个单独的对象都由另一个 ObjectController 管理: App.IndexCo
在 Ember.ArrayController 中,我有一个函数 .observes()用于属性更改的整个模型数组的属性。 var FoosController = Ember.ArrayContro
我正在寻找一种方法来清除 ArrayController,但在 sortProperties 时出现错误: App.SwatchesController = Ember.ArrayController
我无法用我目前正在做的事情获取一个奖项集合,我在获取这个集合时做错了什么? 我不断收到以下错误: 错误:处理路由时出错:奖励断言失败:ArrayController 期望 model 实现 Ember
我需要调用 ItemController 中的函数/或从 ArrayController 设置子 ItemController 的新属性。 为了更好的画面 App.ProductsController
我正在尝试测试以下示例 Ember.js 代码,但 Chrome 浏览器控制台中总是显示以下错误: Uncaught TypeError: Property '_super' of object [o
我正在使用一个简单的 Ember.ArrayController在具有 ember-data 的应用程序中(最新), ember rc6和一个库存 REST Controller 。 我在数组 Con
我有一个模型,如: TestModel = Em.Object.create({ id:'', name:'' }) 和一个对象数组 Controller ,如: testArrayC
我是一名优秀的程序员,十分优秀!