[英]How to reduce redundant code using angularjs?
dt.html
and st.html
are exactly same only difference in controller is scoket.on
call dtconsumer
vs stconsumer
, How can i use one controller for both views or same view and controller for two different state. dt.html
和st.html
完全相同只是控制器的区别是scoket.on
调用dtconsumer
vs stconsumer
,我怎样才能为两个视图使用一个控制器,或者为两个不同的状态使用相同的视图和控制器。 there is alot of redundant code in js
and html
. js
和html
有很多冗余代码。 what is best approach to resolve this issue ? 什么是解决此问题的最佳方法?
Do i need to write directive ? 我需要写指令吗?
dt.html 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 按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 按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 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'
})
You could pass dt/st via $stateParams
, so you could keep 1 url with dt/st as a parameter. 你可以通过$stateParams
传递dt / st,所以你可以保留1个$stateParams
和dt / st作为参数。 Something like this. 像这样的东西。
app.js app.js
.state('app.dt', {
url: '/:type',
templateUrl: 'view/partials/dt.html',
controller: 'DitCtrl'
})
ctrl.js 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);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.