ember.js视图渲染有何不同 //创建余烬js应用程序 App=Ember.Application.create(); //创建父视图-不使用templateName函数/属性 App.grandrentView=Ember.View.extend({ 单击:函数(){ console.log('祖父母!'); } }); //使用templateName函数/属性创建父视图 App.ParentView=Ember.View.extend({ templateName:“父视图”, 单击:函数(){ log('parent view!'); } }); //使用模板渲染视图内容 {{{#查看App.grandrentView} 点击祖父母视图! {{/view} //将视图嵌入到div中 {{view App.ParentView}

ember.js视图渲染有何不同 //创建余烬js应用程序 App=Ember.Application.create(); //创建父视图-不使用templateName函数/属性 App.grandrentView=Ember.View.extend({ 单击:函数(){ console.log('祖父母!'); } }); //使用templateName函数/属性创建父视图 App.ParentView=Ember.View.extend({ templateName:“父视图”, 单击:函数(){ log('parent view!'); } }); //使用模板渲染视图内容 {{{#查看App.grandrentView} 点击祖父母视图! {{/view} //将视图嵌入到div中 {{view App.ParentView},ember.js,Ember.js,这两种不同的方法如何在ember.js中进行视图渲染。 哪一个更好,一个的用例或优点是什么。首先,不要将您的余烬模板标记放在标记内。这不会达到你的期望 当您使用{{view App.View1}}时,您告诉ember在此处呈现App.View1的实例。它使用的模板将是您在构建App.View时使用的templateName。例如: // create Ember js app App = Ember.Application.create(); // Create a grand parent

这两种不同的方法如何在ember.js中进行视图渲染。
哪一个更好,一个的用例或优点是什么。

首先,不要将您的余烬模板
标记放在
标记内。这不会达到你的期望

当您使用
{{view App.View1}}
时,您告诉ember在此处呈现App.View1的实例。它使用的模板将是您在构建App.View时使用的
templateName
。例如:

// create Ember js app
App = Ember.Application.create();

// Create a grand parent view - without using templateName function/property
App.GrandparentView = Ember.View.extend({
  click: function() {
    console.log('Grandparent!');
  }
});

// Create a parent view by using templateName function/property
App.ParentView = Ember.View.extend({
  templateName:"parent-view",          
  click: function() {
    console.log('parent view!');
  }
});

// use the template to render the view content
<script type="text/x-handlebars" >
  {{#view App.GrandparentView}} 
    Click Grandparent View!     
  {{/view}}
</script>

// embed the view inside a div 
<div id="Parent">
  <script type="text/x-handlebars">
    {{view App.ParentView}}
  </script>
</div>
<script type="text/x-handlebars" data-template-name="my-template">
  Hello World!
<script>

App.View1 = Ember.View.extend({ templateName: 'my-template' });

两者都不可取,但命名模板允许重用,并使代码更干净。一个结构良好的应用程序将利用这两个模板选项。当您只想向同一视图类提供一次不同的模板时,可以使用匿名/内联模板(App.View2示例)。

如果两者都不可取,请告诉我更可取的版本。
{{#view App.View2}}
    Hello World
{{/view}}

App.View2 = Ember.View.extend();