2017-03-24 8 views
3

dt.htmlst.htmlは全く同じですコントローラの違いはscoket.onですdtconsumerstconsumer、私はどのように2つの異なる状態の両方のビューまたは同じビューとコントローラに1つのコントローラを使用できますか。 jshtmlに冗長コードがたくさんあります。この問題を解決する最良の方法は何ですか?angularjsを使用して冗長コードを減らすにはどうすればよいですか?

ディレクティブを書く必要がありますか?

dt.html

<div class="panel-body display-logs" scroll-bottom="event" style="width:100%;"> 
         <ul style="list-style: none;"> 
          <li ng-repeat="message in event | limitTo:1000" ng-class="{lastItem: $last}"><span>{{message.value}}</span></li> 
         </ul> 
       </div> 

はCtrl-1.js

var searchEnv = 'DT'; 
$scope.event = []; 
socket.on('dtConsumer',function (data) { 
     var obj = { 
      file:$scope.filename, 
      data:data 
     } 
     var messageSize = getBytesForBuffer(data); 
     $scope.event.push(data); 
    }); 

はCtrl-2.js

var searchEnv = 'st'; 
$scope.event = []; 
socket.on('StConsumer',function (data) { 
     var obj = { 
      file:$scope.filename, 
      data:data 
     } 
     $scope.event.push(data); 
     var messageSize = getBytesForBuffer(data); 
    }); 

app.js

.state('app.dt', { 
     url: '/dt', 
     templateUrl: 'view/partials/dt.html', 
     controller: 'DitCtrl' 
    }) 
    .state('app.st',{ 
     url:'/st', 
     templateUrl:'view/partials/st.html', 
     controller:'StCtrl' 
    }) 
+0

あなたの質問は、「どのように私は複数のテンプレートのためのコントローラを使用することができます」されている場合は、私はしばらく前にそれに少し記事を書きました。もはや存在しない古い "ng-include"を探しているかもしれません。 www.tcoz.com/#/errataにアクセスし、「Angular 2のng-include?」をご覧ください。 –

答えて

1

$stateParamsを経由してdt/stを渡すことができるので、パラメータとしてdt/stを1つのURLにすることができます。このようなもの。

app.js

.state('app.dt', { 
    url: '/:type', 
    templateUrl: 'view/partials/dt.html', 
    controller: 'DitCtrl' 
}) 

ctrl.js

var searchEnv = $stateParams.type; 
$scope.event = []; 
socket.on(searchEnv+'Consumer',function (data) { 
    var obj = { 
     file:$scope.filename, 
     data:data 
    } 
    var messageSize = getBytesForBuffer(data); 
    $scope.event.push(data); 
}); 
+0

$ stateParamsを使ってどのように実装することができますか? – hussain

+0

あなたの$ stateParamsのアプローチを使うと、2つのビューと2つのコントローラを持つ必要はありません – hussain

+0

データベースのURL $ stateParams – hussain

関連する問題