小编ian*_*zer的帖子

如何在Ember.js中为Ember数据模型创建承诺

我有一个Ember-Data模型.我想在.then承诺加载后进行一些处理,然后返回与promise相同的模型.这就是我现在所拥有的.如何将返回对象包装为一个承诺,以便其他承诺可以链接?

App.Member.find(1).then(function(member){

  //do some processing here
  return member; // Does this need to be wrapped as a promise?

} 
Run Code Online (Sandbox Code Playgroud)

promise ember.js

16
推荐指数
1
解决办法
1万
查看次数

以编程方式评估Ember模板

我需要以编程方式评估Ember模板,以便通过在提供的上下文中评估Ember模板来生成HTML结果.

我想使用这个生成的HTML插入谷歌地图InfoWindow(单击标记时出现的小模式.)

所有变量都将是未绑定的.

我试过了

Ember.TEMPLATES['templateName']( {context: 'suppliedHere})
Run Code Online (Sandbox Code Playgroud)

但是这需要Ember.RenderBuffer存在于data.buffer对象中

ember.js

6
推荐指数
1
解决办法
524
查看次数

通过has_many关联禁用自动保存 - 断开ActiveRecord实体与会话的连接

Ruby on Rails的默认行为是保存对集合关联所做的更改.有没有办法改变这种行为,这样我就可以修改内存中的集合,而无需将更改写入数据库.

所以如果我有两个班:

class Project < ActiveRecord::Base
  has_many :tasks

class Task < ActiveRecord::Base
  belongs_to :project
Run Code Online (Sandbox Code Playgroud)

并写一些代码,如:

Project.tasks.clear
Project.tasks << task1
Project.tasks << task2
Run Code Online (Sandbox Code Playgroud)

然后它会自动删除与项目关联的所有任务,并自动将更改写入数据库.

这是我想要实现的一个人为的例子.我知道我可以使用Project.tasks.build()将新任务添加到集合中,而不会自动保存,但我添加的任务不是新任务.它们是指定一组有限任务的链接在db.您可以将它们视为任务枚举中的条目.另外Project.tasks.clear立即命中数据库.

在java世界中,使用Hibernate,我会断开实体与会话的连接,并能够修改内存中的实体,直到重新连接和保存.

谢谢

activerecord autosave ruby-on-rails has-many

5
推荐指数
1
解决办法
678
查看次数

使用Ember-data检索从RecordArray中填充Ember.Select视图的内容

我有一个使用此代码创建的选择列表:

      {{view Ember.Select
      contentBinding="App.riskCategories"
      optionValuePath="content.id"
      optionLabelPath="content.name"
      selectionBinding="riskCategory"
      class="input-medium"}}
Run Code Online (Sandbox Code Playgroud)

riskCategory是的属性App.Facility加载的模板和列表模式App.RiskCategory填充了这样的代码:

App.ready = function() {
  App.riskCategories = App.RiskCategory.all()
}
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作并填充选择列表,但只能将已加载到浏览器中的Risk Categories子集.如果我从浏览器控制台调用App.RiskCategory.find()然后加载其余的并且选择列表更新但是我无法让代码工作为我这样做.

所以我尝试过:

App.ready = function() {
  App.riskCategories = App.RiskCategory.find()
}
Run Code Online (Sandbox Code Playgroud)

要么:

App.ready = function() {
  App.RiskCategory.find()
  App.riskCategories = App.RiskCategory.all()
}
Run Code Online (Sandbox Code Playgroud)

但这两个都会导致以下错误:

Uncaught Error: Attempted to handle event `loadedData` on <App.Facility:ember417:1> while in state rootState.loaded.updated.uncommitted. Called with undefined
Run Code Online (Sandbox Code Playgroud)

我很感激有关更好地填充选择列表的任何帮助或建议.应将这些App.RiskCategory对象视为存储在db中的常量的不可变集合.每个App.Facility对象都与这些App.RiskCategories之一相关联

谢谢!

ember.js

5
推荐指数
1
解决办法
3151
查看次数

如何正确使用ember-bootstrap项目中的Bootstrap.Tabs?

我正在尝试使用Bootstap.Tabs组件来创建一些引导选项卡.

我已经将标签声明如下:

{{view Bootstrap.Tabs
  contentBinding="App.tabsContent"
  selectionBinding="App.selection"}}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码来设置选项卡的内容.

App.ready = function() {
  App.tabsContent= Ember.A([{value: "cred_app.associate_clients", title: "Associate clients"}, {value: "cred_app.facilities", title: "Facilities"}]);    
};
Run Code Online (Sandbox Code Playgroud)

使用这个我可以成功渲染引导选项卡..并在App.selection中弹出路由名称.

我只是不明白如何使链接工作,以便控制器将转换到路由.我还想让活动标签获得应用于它的正确css,以便标签显示当前正在显示的路线.

更新:

我使用更简单的方法实现了这个:

<ul class='nav-tabs'>
  {{#linkTo 'cred_app.associate_clients' model tagName='li' href=false}}
    {{#linkTo 'cred_app.associate_clients' model}}Client Hierachy{{/linkTo}}
  {{/linkTo}}
</ul>
Run Code Online (Sandbox Code Playgroud)

ember.js

5
推荐指数
1
解决办法
4423
查看次数

等待mixpanel JS lib准备就绪,这样我就可以获得用户distinct_id了

我们希望使用MixPanel来捕获我们网站上的事件,并且我试图获取用户的不同ID,因此我使用以下代码片段:

$(document).ready(function($){  
    console.log("We have distinct id");
    console.log(mixpanel.get_distinct_id());
});
Run Code Online (Sandbox Code Playgroud)

当尝试获取不同的id时,这会导致错误"未定义不是函数".

我已经检查了调试器,并且可以确认mixpanel对象没有get_distinct_id方法,但是如果我等到页面已经加载然后在控制台中评估mixpanel.get_distinct_id(),我会得到不同的id而没有问题.

我只能猜测mixpanel对象还没有完成初始化.一旦mixpanel对象能够告诉我用户distinct_id,是否有我可以用来知道的回调或事件?

mixpanel

5
推荐指数
1
解决办法
2708
查看次数