【问题标题】:Ember Observes not listened when inside actions handlers内部操作处理程序时未监听 Ember 观察
【发布时间】:2014-06-26 15:07:50
【问题描述】:

我有一个方法可以观察全局对象中的页码值。

当我更新页码时,观察到的值会调用一个方法来向服务器发送操作。

在这里,当我将观察放在操作处理程序之外时,它工作正常,但是当我将观察方法移动到操作处理程序内时,它不会在值更改时触发。

此外,当我将观察项放在操作处理程序之外时,它会发出警告,说明操作之外的操作处理程序已被弃用。

当我将方法放在动作处理程序中时,我如何收听观察结果。

模板:

<script type="text/x-handlebars" data-template-name="index">
    <button {{action "updatePage"}}>Update Page Number</button>
</script>

app.js:

App.globalval = Ember.Object.create({
    page: 1
});

App.IndexRoute = Ember.Route.extend({
  globalValChange: function(){
     this.send('someFunction');
  }.observes('App.globalval.page'),
  actions:{ 
    someFunction: function(){
      console.log("in function to send request to server");
    },
    updatePage: function(){
      App.globalval.set('page', 5); 
    }                                           
  } 
});

JSBINLink

【问题讨论】:

    标签: javascript ember.js handlebars.js


    【解决方案1】:

    操作哈希是为发送到控制器/路由的操作保留的,所以答案是你不能,也不应该。

    计算属性/观察者/函数应该存在于扩展对象本身中。

    【讨论】:

    • 感谢您的澄清。
    猜你喜欢
    • 2011-04-14
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    相关资源
    最近更新 更多