《angular essentials》ing...

几个易忽略的directive

ng-disable 常用于比如让button失效
ng-options 下拉选框

ng-style


ngInclude 可以引入一段html,有时可以考虑使用

directive中的scope

@ This prefix passes the data as a string.

= This prefix creates a bidirectional relationship between a controller's scope property and a local scope directive property.

& This prefix binds the parameter with an expression in the context ofthe parent scope. It is useful if you would like to provide some outsidefunctions to the directive.

《angular essentials》ing..._第1张图片

require - 请求另外的controller,传入当前directive的linking function中。 require需要传入一个directive controller的名称。如果找不到这个名称对 应的controller,那么将会抛出一个error。名称可以加入以下前缀:
? - 不要抛出异常。这使这个依赖变为一个可选项。
^ - 允许查找父元素的controller
transclude
http://www.html-js.com/article/1869, http://my.oschina.net/gejiawen0913/blog/187397


factory返回的是一个object(单例),
service方式创建的服务是一个多例,即可以通过new操作符进行操作。
provider方式 http://hellobug.github.io/blog/angularjs-providers/


run 通过run对于运行时的变量和常量做配置。保证在所有程序处访问此变量都是。

app.run(function ($http) { $http.defaults.headers.common.Accept = "application/json";
}).run(function ($http) { $http.defaults.cache = true;
});


$q:deferred首先创建好成功和失败的的处理方法resolve和reject,然后用返回deferred.promise承诺对象,然后可以拿到这个promise,然后.then(functinon(data){成功},function(data){失败})。
http://blog.csdn.net/lglgsy456/article/details/32335127
// $q 是内置服务,所以可以直接使用

ngApp.factory('UserInfo', ['$http', '$q', function ($http, $q) {

return {

query : function() {  

  var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行  

  $http({method: 'GET', url: 'scripts/mine.json'}).  

  success(function(data, status, headers, config) {  

    deferred.resolve(data);  // 声明执行成功,即http请求数据成功,可以返回数据了  

  }).  

  error(function(data, status, headers, config) {  

    deferred.reject(data);   // 声明执行失败,即服务器返回错误  

  });  

  return deferred.promise;   // 返回承诺,这里并不是最终数据,而是访问最终数据的API  

} // end query  

};

}]);

angular.module('ngApp')

.controller('MainCtrl', ['$scope', 'UserInfo', function ($scope, UserInfo) { // 引用我们定义的UserInfo服务

var promise = UserInfo.query(); // 同步调用,获得承诺接口  

promise.then(function(data) {  // 调用承诺API获取数据 .resolve  

    $scope.user = data;  

}, function(data) {  // 处理错误 .reject  

    $scope.user = {error: '用户不存在!'};  

});  

}]);


$rootscope上的变量是在哪都可以访问的。

你可能感兴趣的:(《angular essentials》ing...)