我想我不是在理解这个概念.据我所知,任何人Ember.object都可以观察到另一个人的属性Ember.object.
所以,我有一个服务,一个路由器和一个组件.我需要组件和路由器才能观察服务上的属性.完全有可能我只是以错误的方式构建解决方案,我将概述我最后要做的事情.
这是我的大概:
export default Ember.Service.extend({
observedProperty: 'original value'
});
Run Code Online (Sandbox Code Playgroud)
export default Ember.Component.extend({
thingManager: Ember.inject.service(),
myObserver: Ember.observer(
'thingManager.observedProperty',
function() {
// This shows up as anticipated, unlike the one in the routes
console.log('THING SHOWER COMPONENT observed change on thingManager')
}
),
actions: {
changeObservedProperty: function() {
let thingManager = this.get('thingManager')
let newText = thingManager.get('observedProperty') + '!'
// here i am sure to call `set` to make sure observers fire
thingManager.set('observedProperty', newText)
}
}
}); …Run Code Online (Sandbox Code Playgroud) 在生产ember构建中,我在加载index.html时遇到了以下错误.
未捕获错误:无法找到ember-data/-private\system\references\record从中导入的模块ember-data/-private/system/references
我相信模块名称正斜杠会导致此问题.
我在ember-cli-build.js文件中没有任何条目.在分析此错误时,我发现注册表包含以下模块,
"ember-data/-private/system/references"
"ember-data/-private/system/references/belongs-to"
"ember-data/-private/system /文献/有一对多"
但是有些如何在注册表中检查以下依赖项ember-data-private\system\references\
tneter-data-private\system\references\belongs-to
ember-data-private\system\references\has-many
导致以下缺少模块错误.任何人都帮我解决这个错误.
以下声明来自ember指南,
使用运行循环的最常见情况是与包含某种异步回调的非Ember API集成.例如:
DOM更新和事件回调
setTimeout和setInterval回调
postMessage和messageChannel事件处理程序
AJAX回调
Websocket回调
我通常会为AJAX请求做,
Ember.$.ajax(
{
type: "POST",
url:"someurl",
contentType: "application/json",
success: function(data) {
//Should I wrap this success callback code in Run loop. or is it safe to leave
//Here I will set properties to display, I might call sendAction/send to communicate with parent.
}
})
Run Code Online (Sandbox Code Playgroud)
我没有遇到任何问题,但有时渲染在回调中更改数据后花费了太多时间?有没有人面对这个问题?
我应该使用ember-ajax插件在Ember运行循环中包装成功回调吗?
PS:下面是来自ember指南,你应该在Ember.run中包装任何非Ember异步回调.如果不这样做,Ember将尝试为您预测开始和结束.依靠自动运行不是一种严格或有效的方式来使用运行循环.
我想在 ember 应用程序中的搜索输入中添加去抖功能。我在使用去抖方法时遇到问题。
我的搜索如下所示:
{{input type="search"
placeholder="Search by XYZ"
value=search
id="search"
}}
Run Code Online (Sandbox Code Playgroud)
我的路线文件:
export default Ember.Route.extend({
queryParams: {
search:{refreshModel: true}
}
Run Code Online (Sandbox Code Playgroud)
我的控制器文件:
export default Ember.Controller.extend({
search: "",
Run Code Online (Sandbox Code Playgroud) ...正如您在下面的代码中看到的那样,对象的扩展运算符 ( ) 不起作用。这是预期的行为吗?在jsbin中试试
//var test ={start:'stating',end: 'ending'}; //its not working
var test=['start-value','end-value']; //its working
function display(start,end){
console.log(start,end);
}
display(...test)
Run Code Online (Sandbox Code Playgroud)
问这个问题的原因是,我在下面的代码行中看到了使用对象的扩展运算符的使用,但它对我不起作用。
我是否缺少任何配置以使其正常工作?
在 chrome 测试版中,我的一个应用程序出现以下错误,
无法在资源“ http://localhost:8000/assets/vendor-2d2d91b98d3771c414a0b039e0b4d8c1.js ”的“integrity”属性中找到有效的摘要,计算出的 SHA-256 完整性为“RtMfPvtdjkEbZERLg=‘RtMfPvtdjkEbZERLg’ 该资源已被阻止。
正如github 线程指出它已修复,但我收到此错误ember-cli-2.14.1,"ember-cli-sri": "^2.1.0",因此我将包含integrity=''. 我想知道,这种变化有什么后果吗?
我对Ember的文档中的queryParams感到困惑.它表明您可以将queryParams放到Controller或Route.除了语法之外,在Route vs Controller中有queryParams有什么区别?
据我所知,在Route中将queryParams作为对象允许我做以下事情:
在什么情况下你会选择在Controller中使用queryParams?
在我的项目的某些组件的生命周期挂钩方法没有this._super(...arguments)如didReceiveAttrs,didUpdateAttrs,didRender,didInsertElement和willDestroyElement.但我没有遇到任何问题.我应该改为包含还是不包括?
我知道如果我们覆盖init类似的框架类Ember.Component,请务必this._super(...arguments)在我们的init声明中调用!如果我们不这样做,Ember可能没有机会进行重要的设置工作,我们会在您的应用程序中看到奇怪的行为.(参考)
ember.js ×8
javascript ×5
ember-cli ×2
ember-data ×2
ajax ×1
babeljs ×1
callback ×1
debouncing ×1
ecmascript-6 ×1
frontend ×1
jquery ×1
search ×1