javascript - 如何使用angularjs减少冗余代码?

标签 javascript angularjs angularjs-directive

dt.htmlst.html 完全相同,唯一的区别在于 Controller 是 scoket.on 调用 dtconsumer vs stconsumer,我如何为两个 View 使用一个 Controller 或为两个不同的状态使用相同的 View 和 Controller 。 jshtml 中有很多冗余代码。解决此问题的最佳方法是什么?

我需要写指令吗?

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);
    });

应用程序.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'
    })

最佳答案

您可以通过$stateParams 传递dt/st,因此您可以保留1 个以dt/st 作为参数的url。像这样。

应用程序.js

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

控制键

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);
});

关于javascript - 如何使用angularjs减少冗余代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43008721/

相关文章:

angularjs - 我可以在 AngularJS 的模板文件中保留 Controller 吗?

javascript - javascript中编码异常,似乎无法找到问题所在

javascript - 如何隐藏单击后滚动到内容的菜单?

javascript - 如何使用 javascript 让 div 在 X 秒后出现?

javascript - Angular - 观察影响子 DOM 元素可见性的祖先中的 ngShow/ngHide 变化

AngularJS - 模块和指令可以同名吗?

javascript - FullCalendar,可以设置 selectable false 但允许选择插槽

javascript - 如何将 strip token 从 AngularJS 传递到 NodeJS 或修复错误 NodeJS 帖子?

javascript - 使用过滤器更新范围对象 - AngularJS

angularjs - 使用 scope.$eval 将参数传递给指令回调