作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在研究巨大的 Angular SPA 应用程序。我尽量保持我的 Controller 瘦:
<div ng-controller='HomeController as home'>
<div ng-repeat='var item in home.items' ng-bind='item' ></div>
<button ng-click='home.remove(1)' >remove</button>
</div>
function HomeController (homeService){
var vm = this; //$scope
vm.items = [1,2,3,4,5];
vm.remove = remove;
function remove (id){
homeService.remove({ items: vm.items, targetId: id });
}
//a lot of other logic here
}
angular.module('my').service('homeService', homeService);
function homeService (){
this.remove = remove;
function remove (param){
for(var a = 0; a < param.items.length; a++){
if(param.items[a] == param.targetId){
param.items.splice(a, 1);
break;
}
}
}
}
最佳答案
What is your approach to keep controllers thin?
remove
和
item
在您的代码中不会在 Controller 中定义。在 Controller 内部,我将设置对模型的引用,以获取指令所需的任何内容,即可通过
$scope
访问.
angular.module('myApp').factory('model', function() {
// private helpers
var add = function(array, element) {...}
var remove = function(array, element) {...}
var find = function(array, id) {...}
return {
Entity: function(id) {
this.id = id;
},
entities: {
entities: [],
find: function(id) {
return find(this.entities, id);
},
add: function(entity) {
add(this.entities, entity);
},
remove: function(entity) {
remove(this.entities, entity);
}
}
});
angular.module('myApp').controller('ctrl', function($scope, model) {
$scope["model"] = model; // set reference to the model if i have to
var entity = new model.Entity('foo'); // create a new Entity
model.entities.add(entity); // add entity to entities
model.entities.find('foo'); // find entity with id 'foo'
});
关于angularjs - 保持 Angular Controller 薄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275501/
简单的 sinatra 应用程序: require 'rubygems' require 'sinatra' get '/' do "Hey" end 然后: $ ruby test.rb 当我点
目前我正在研究巨大的 Angular SPA 应用程序。我尽量保持我的 Controller 瘦: remove function HomeController (homeServi
我正在第一个真正的ASP.NET MVC项目中工作,并且我注意到我一直在使用的 Controller 变得越来越大。这似乎与使 Controller 变薄的最佳做法背道而驰。 我已经做好了将业务逻辑排
我是一名优秀的程序员,十分优秀!