2

私はしばらくの間、Ember.js を使用してきました。今、私は修正できない奇妙な動作をしています。初めての経験ではありませんが、以前は少し変更を加えるとわかりました。しかし今、私は何が紛争を引き起こしているのか本当にわかりません。問題はコントローラで発生しています。テスト用に、この途方もなく単純なコントローラーがあります。

App.AppColleaguesController = Ember.ArrayController.extend
(
  {
    needs: ['app'],

    aNumber: function()
    {
      return this.get('controllers.app.personId');
    }
  }
);

もちろん、そのプロパティは AppController で定義されています。

App.AppController = Ember.ArrayController.extend
(
  {
    loggedIn: false,
    personId: -1,
    personName: '',
    location: '',

    logOut: function()
    {
      if (window.confirm("Do you want log out?"))
      {
        this.set('loggedIn', false);
        this.set('personId', -1);
        this.set('personName', '');
        this.set('location', '');
        this.send('goToLogin');
      }
    }
  }
);

私のテンプレートでは、次の結果が得られます。

... これは数字です: function () { return this.get('controllers.app.personId'); } ...

私のテンプレートは次のように簡単です。

...
This is a number: *{{aNumber}}*

{{debug}}
{{log aNumber}}
...

私のテンプレートのデバッグ ステートメントは、Firebug コンソールでこれを示しています。

...
Transitioned into 'app.colleagues'
function()
...

したがって、関数は「解釈」ではなく、文字通りエコーされるようです。実際、私はさらにいくつかのコントローラーでこの種の問題を抱えていますが、残りのコントローラー (8 個または 10 個のコントローラーのように多数) は問題なく動作しています。問題について何か考えはありますか?私の間違いですか、それとも Ember の問題ですか?

よろしくお願いします!あなたが私を助けてくれることを願っています。

4

1 に答える 1

2

.propertyafter 関数を忘れました。これは、関数が計算されたプロパティであることを示すために Ember によって必要とされます。

aNumber: function() {
  return this.get('controllers.app.personId');
}.property('app.personId')
于 2013-07-11T04:17:47.563 に答える