1

そのため、テンプレートからビューオブジェクトに値を取得できないように見えるこの問題に遭遇しました。

たとえば、次のサインイン フォームを使用します。

App.AuthSignInView = Ember.View.extend
  templateName: 'auth/sign_in'

  email:    null
  password: null

  submit: (event, view) ->
    event.preventDefault()
    App.Auth.signIn
      data:
        email:    @get 'email'
        password: @get 'password'

そして、このテンプレート:

<form>
  <div class="control-group">
    <label class="control-label" for="email">Email</label>
    <div class="controls">
      {{view Ember.TextField valueBinding="email"}}
    </div>
    <div class="controls">
      {{view Ember.TextField type="password" valueBinding="password"}}
    </div>
  </div>
  <button class="btn btn-inverse">Sign In</button>
</form>

ビューが送信時に電子メールとパスワードのプロパティにアクセスしようとすると、それらはまだ null です。ここで何か単純な間違いをしていると確信していますが、何がわからないのですか。

4

1 に答える 1

4

アプリのビューの保持状態を保持することはお勧めできませんが、関連するすべてのロジックは、テンプレートで定義された値のデフォルトのルックアップ場所であるコントローラーで実行する必要があります。ただし、値をビューに表示する必要がある場合は、テンプレート内で値バインディングにプレフィックスを付けて、ビューで値を使用view.emailできるようにする必要があります。view.password

このアプローチを使用した動作中のjsbinについては、こちらを参照してくださいview

そして、推奨される方法を使用したjsbinの例を次に示します。controller

それが役に立てば幸い。

于 2013-07-05T14:32:25.243 に答える