angular.jsをやってみる (5) - provider -
http://docs.angularjs.org/guide/providers な辺りのドキュメント見つつやってみた
index.html
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.2/angular.min.js"></script>
</head>
<body>
<div ng-controller="SampleController"></div>
<script src="app.js"></script>
</body>
</html>
app.js
var Sample = (function() {
function Sample(name) {
this.name = name;
}
Sample.prototype.say = function() {
alert(this.name);
};
return Sample;
})();
angular.module("app", [])
.provider("sample", function() {
this.name = "Sample";
this.$get = function() {
return new Sample(this.name);
};
})
.config(["sampleProvider", function(sample) {
sample.name = "hoge";
}])
.controller("SampleController", function(sample) {
// hogeがalertされる
sample.say();
});
providerをconfigする場合にはproviderで指定した名称+Providerで指定する。今回はsampleっていう名称でprovider定義しているのでsampleProviderでconfigを利用すればインスタンス生成後?などによる設定が可能。でそのインスタンス生成に関してはprovider内の$getを実装する事で可能
んまぁserviceとかfactoryは後日やる予定なのでそれに関係するとこはとりあえずパス