1

ビューで更新された値を取得する際に問題に直面しています。valueBindingが機能していないと思います

 <script type="text/x-handlebars" >
            {{#view App.Test }}
                <label>Name:</label>
                {{view Ember.TextField  placeholder="username" valueBinding="view.name"}} </br>  </br>
              {{/view}}
      </script>

App.Test = Ember.View.extend({

    name: null,

     submit: function(event) {
       // event.preventDefault();
       console.log(this.get('name'));

    }

})

submit 関数が呼び出されると、console.log(this.get('name')); テキストファイルに値が入力されていても、常に NULL 値が表示されます。

4

1 に答える 1

2

すでにブロックヘルパー内にいるので、「view.name」を使用してバインドする必要はありませんが

、アプリケーションがルーターによって初期化され、ビューがに接続されているoutlets場合は、「view.name」を使用する必要があります。ビュー内のプロパティを参照してください。たとえば、

基本的なアプリのセットアップ

MyApp = Ember.Application.create();

MyApp.Router = Ember.Router.extend({
  root: Ember.Route.create({
    index: Ember.Route.create({
      route: '/',
      redirectsTo: 'home',
      home: Ember.Route.create({
        route: '/home',
        connectOutlets: function(router){
          router.get('applicationController').connectOutlet('home');
        }
      })
    })
  })
});

MyApp.ApplicationView = Ember.View.extend({
  templateName: 'application'
})

MyApp.HomeView = Ember.View.extend({
  templateName: 'home',
  name: 'TheName'
})

MyApp.HomeController = Ember.Controller.extend({
  name: "Joey"
})

<script type="text/x-handlebars" data-template-name="application">
 {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="home">
  {{view.name}} I am from Home View
  {{name}} I am from the Home Controller
</script>

ご覧のとおり、この場合、コントローラーでプロパティを検索します。ビューからプロパティを使用する場合は、 Fiddle{{name}}を使用する必要があります。{{view.name}}

于 2012-12-11T03:09:06.823 に答える