を初期化するときにのみ機能します.W3schoolsチュートリアルで動作するAngularJSを使い始める。サービスを呼び出す関数は、
私は、サービスヘキサフィックスを使用するgetHex()関数によって使用される入力を作成することによって、サンプルコードの一部を拡張しようとしています。
<div ng-app="myApp" ng-controller="myCtrl">
<p>The hexadecimal value of <input ng-model="inputNo"/> is:</p>
<h1>{{getHex()}}</h1>
</div>
<p>A custom service with a method that converts a given number into a hexadecimal number.</p>
<script>
var app = angular.module('myApp', []);
app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
app.controller('myCtrl', function($scope, hexafy) {
$scope.inputNo = 255;
$scope.getHex = function() {
return hexafy.myFunc($scope.inputNo);
};
});
</script>
ページ初負荷は、入力255を含み、{{getHex()}} FFとしてレンダリングされているので、機能が正しく動作するように見えます。
しかし、私は入力の値を変更すると、正確に入力を{{getHex()}}に正確に返します。 getHex()はhexafy.myFuncの結果を返すことになっています。
これは私のサンプルコードと機能的に同等と思われます。私はhtml {{getHex()}}も更新していますが、期待値が得られません。たとえば、最初にページ・ロードで実行された場合、ffとして255が戻されます。しかし、値を254に変更すると254が返されます。255を入力すると255が返されます。ページの最初の読み込み時には、入力の16進値のみを返します。 – SeanOB
なぜ初期ロードでffが正しくレンダリングされたのでしょうか? – SeanOB
は最初は整数です。しかし、あなたが入力でそれを変更するときにはもちろん、文字列型 –