2016-06-30 7 views
0

を作成する方法について説明します。プレーンなjsでは、私はこれのための別のユーティリティを作成し、それを消費する方法を知っていますが、Emberでは、どうやって行っていますか、ヘルパーなどを作る必要があります。エンバーJS - 私は試合のメディアを使用してJSを経由してブレークポイントを検出するためのコードを書いています共有uitility

平野JSコード

define('viewportDimension', function() { 
    var viewportSize ={ 
     mqMaxTablet : '959px', 
     isTablet: function(){ 
      if(matchMedia){ 
       var mq = window.matchMedia("(max-width:" + this.mqMaxTablet+ ")"); 
       mq.addListener(this.viewportChanged); 
       this.viewportChanged(mq); 
      } 
     }, 
     viewportChanged: function(mq){ 
      if(mq.matches){ 
       return true; 
      } 
     } 
    }; 
    return viewportSize; 
}); 

エンバーコントローラー:

isTablet: function(){ 
viewportDimension.isTablet(); 
}.property('') 

私は上記のコードは動作しません理解しています。私はそれをよりEmberのタイプにする方法を知らない。メディアクエリの一致が完了するとすぐに、 "isTablet"プロパティをtrueに設定する必要があります。

は、(下記のように)emberishために私の無地のjsを変換し始めたが、続行する方法を知りません。

define('viewportDimension',function(){ 
    var viewportSize = Ember.Object.extend({ 
     isTablet: function(){ 
      alert("1"); 

     }.property('') 
    }); 
    return viewportSize; 


}); 

Ember.Application.initializer({ 
    name: 'viewport-dimension', 
    initialize: function(container,app){ 
     require('viewportDimension',function(object){ 
      app.ViewportDimension = object 
     }) 
    } 
}) 
+0

を見ては、たぶん、このモジュールは、あなたhttps://www.npmjs.com/package/ember-cli-responsive –

+0

@EbrahimPasbaniに適していてください - リンクのおかげで、Iそれが助けになると思うが、悲しいことに、私のプロジェクトにはどんなアドオンも入れる長いプロセスがある。したがって、私はできるいくつかの迅速な実装を探しています – whyAto8

+0

私はなぜ、どのaddonを含む長いプロセスが理解できません。とにかくemberのどのバージョンを使っていますか? –

答えて

1
+0

ありがとう、これを試してみましょう。あなたはこれをサービスとして作成しましたので、Emberのやり方では、アプリケーション間で使用されるユーティリティ用のサービスを作成するのは正しいですか。 – whyAto8

+0

サービスはシングルトンです。そして、これを使用して、問題ではありません。 –

+0

@ whyAto8これは単なるアイデアを得るためのものです。それをutilsにも移動できます。 –