Service、Provider 和 directive 之间的明显区别 -> controller
Clear differences between Service, Provider and directive -> controller
所以,我的印象是 Angularjs 可能有点冗长,我想清楚地了解以下功能之间的主要区别是什么以及它们何时使用。我'feel'我明白了,但是线条有点模糊和空灵,所以我希望其他人澄清。
两者在用法上有什么区别:它们在职责和用法上似乎可以互换。
一个。服务
乙。工厂
摄氏度。供应商
module.controller 和 module.directive.controller 有什么区别?
即:
var app = angular.module("someApp",[]);
app.controller("someCtrl1", 函数(){
// 一些代码
});
</pre>
和这种用法,当它位于指令中时
app.directive("someDirective", function() {
return {
restrict: 'E',
template: '<p>Hello {{name}}!</p>',
controller: function($scope, $element){
$scope.name = $scope.name + "post1 ";
},
link: function(scope, el, attr) {
scope.name = scope.name + "post2 ";
}
}
})
指令的return里面的"controller"有点看不懂。更详细地说,这个约定是什么?
简而言之,Service 是工厂的包装器,而工厂是提供者的包装器。
该服务使用 JS 构造函数语法,而工厂使用 JS 函数语法。
BUT,service/factory 和提供程序之间有一个很大的区别,即在配置阶段可以访问提供程序,而前一个则不能。
看到这个好详细answer.
指令中控制器的主要目的是当指令具有独立的作用域时,它不会耦合到父控制器,因此它有一个独立的控制器。
1.
你可以在this question
上找到明确的答案
另外我可以说:
服务:结构简单
工厂结构复杂
供应商结构更复杂
- module.controller 与 module.directive.controller 之间没有区别。
我没听说过用法 module.directive.controller,正确的用法是;
app.directive("myDir", ['$yourService',function($yourService){
return {
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
var that = this;
//add sume property
that = angular.extend(that, $yourService));
return that;
}]
}
}])
基本上,每个指令都不需要控制器 属性。但是,如果你的指令是终端指令或父指令,而你的子指令需要父指令的一些功能或属性,你需要在指令中自定义控制器。
例如,如果您的 table 指令具有子行和单元格指令,table 必须有一个控制器。
所以,我的印象是 Angularjs 可能有点冗长,我想清楚地了解以下功能之间的主要区别是什么以及它们何时使用。我'feel'我明白了,但是线条有点模糊和空灵,所以我希望其他人澄清。
两者在用法上有什么区别:它们在职责和用法上似乎可以互换。
一个。服务
乙。工厂
摄氏度。供应商
module.controller 和 module.directive.controller 有什么区别? 即:
var app = angular.module("someApp",[]); app.controller("someCtrl1", 函数(){ // 一些代码 }); </pre>
和这种用法,当它位于指令中时
app.directive("someDirective", function() { return { restrict: 'E', template: '<p>Hello {{name}}!</p>', controller: function($scope, $element){ $scope.name = $scope.name + "post1 "; }, link: function(scope, el, attr) { scope.name = scope.name + "post2 "; } } })
指令的return里面的"controller"有点看不懂。更详细地说,这个约定是什么?
简而言之,Service 是工厂的包装器,而工厂是提供者的包装器。 该服务使用 JS 构造函数语法,而工厂使用 JS 函数语法。 BUT,service/factory 和提供程序之间有一个很大的区别,即在配置阶段可以访问提供程序,而前一个则不能。 看到这个好详细answer.
指令中控制器的主要目的是当指令具有独立的作用域时,它不会耦合到父控制器,因此它有一个独立的控制器。
1.
你可以在this question
上找到明确的答案另外我可以说:
服务:结构简单
工厂结构复杂
供应商结构更复杂
- module.controller 与 module.directive.controller 之间没有区别。
我没听说过用法 module.directive.controller,正确的用法是;
app.directive("myDir", ['$yourService',function($yourService){
return {
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
var that = this;
//add sume property
that = angular.extend(that, $yourService));
return that;
}]
}
}])
基本上,每个指令都不需要控制器 属性。但是,如果你的指令是终端指令或父指令,而你的子指令需要父指令的一些功能或属性,你需要在指令中自定义控制器。
例如,如果您的 table 指令具有子行和单元格指令,table 必须有一个控制器。