HTML:AngularJS:サービスによって生成されたコントローラの値が機能していませんか?
<body ng-controller="NumCtrl as ctrl">
<input type="text" id="textbox" ng-model="ctrl.num">
<h1>{{ctrl.num}}</h1>
<h3>Factorial</h3>
<p>{{ctrl.showfactorial}}</p>
コントローラー:
angular
.module('app')
.controller('NumCtrl', NumCtrl)
function NumCtrl(mathify) {
var ctrl = this;
ctrl.showfactorial = mathify.factorial(ctrl.num);
}
サービス:
angular
.module('app', [])
.service('mathify', mathify)
function mathify() {
this.factorial = function(num) {
if (num === 1) {
return 1;
} else {
return num * this.factorial(num-1);
}
}// end of factorial
}
サービスは、HTMLスクリプトファイル内のコントローラの前に来ます。 ctrl.numとctrl.showfactorialの両方が表示されていません。しかし、コントローラでshowfactorialをコメントアウトすると、ctrl.numは正常に動作しています。私は間違って何をしていますか?
間違っている! "controller as"構文を参照してください。彼はその部分を正しくやっている。 –