Ember.js 在视图中成为可见的钩子

Ember.js 在视图中成为可见的钩子,ember.js,Ember.js,有谁能告诉我如何在余烬视图中使用becameVisiblehook吗?如果我用与didInsertElementhook相同的方式使用它,它似乎不会在我期望的时候触发 我有多个标签,其中一个包含谷歌地图。我需要在选择该选项卡后立即触发地图刷新 关于钩子的文档可以在页面的中间部分的Lifecycle钩子上找到 我在Ember 1.3.2上很好地回答了与视图上的becameVisible挂钩相关的标题。此挂钩仅在视图的isVisible属性更改时触发。默认情况下,视图上的isVisible属性设置为

有谁能告诉我如何在余烬视图中使用
becameVisible
hook吗?如果我用与
didInsertElement
hook相同的方式使用它,它似乎不会在我期望的时候触发

我有多个标签,其中一个包含谷歌地图。我需要在选择该选项卡后立即触发地图刷新

关于钩子的文档可以在页面的中间部分的Lifecycle钩子上找到


我在Ember 1.3.2上很好地回答了与视图上的
becameVisible
挂钩相关的标题。此挂钩仅在视图的
isVisible
属性更改时触发。默认情况下,视图上的
isVisible
属性设置为true。因此,如果在视图上切换该属性,或将其设置为false,则视图将被隐藏,这将导致
becameHidden
钩子在设置为true时启动
becameVisible
钩子

因此,让我们假设在索引模板上,我们有一个指向视图的操作的链接和一个视图名称
App.MyDiv
,我们将使用它来说明该视图上的钩子becameVisible/becameHidden:

  <script type="text/x-handlebars" data-template-name="index">

     <a href="#" {{action 'hide' target="view"}}>Hide that Div</a>

     {{view App.MyDiv}}

  </script>
现在在我们的App.MyDiv视图定义中:我们可以有如下内容:

 App.MyDiv = Ember.View.extend({
   viewName: 'hidemydiv',
   templateName: 'myDiv',

   didInsertElement: function() {
     console.log('My Div: didInsertElement');
   },

   becameVisible: function() {
     console.log('My Div: Became Visible');
   },

   becameHidden: function() {
     console.log('My Div: Became Hidden');
   }
 });
下面是一个JSBin,用于显示在视图上切换
isVisible
属性时发生的情况


关于你的问题,你可以在标签上有一个动作,按下它会在地图上调用某种重播动作

我找不到becameVisible钩子的任何文档,你能提供一个链接吗?@MartinElvar I添加了一个参考。可以在生命周期挂钩中找到它
 App.MyDiv = Ember.View.extend({
   viewName: 'hidemydiv',
   templateName: 'myDiv',

   didInsertElement: function() {
     console.log('My Div: didInsertElement');
   },

   becameVisible: function() {
     console.log('My Div: Became Visible');
   },

   becameHidden: function() {
     console.log('My Div: Became Hidden');
   }
 });