Here is my JSFiddle.そして、ここのコードです:AngularJSカスタムフィルタをユーザー入力で動作させるにはどうすればよいですか?
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-init="my_number=255">
Convert a number to hexadecimal, using a custom made service inside a custom made filter:
<input ng-model="my_number">
<h1>{{my_number | myFormat}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.service('hexafy', function() {
this.myFunc = function(x) {
return x.toString(16);
}
});
app.filter('myFormat', ['hexafy', function(hexafy) {
return function(x) {
return hexafy.myFunc(x);
};
}]);
</script>
フィルタはintialized値(FFとして255の番組)でうまく動作するようだが、その値がユーザーによって変更されたとき、フィルタが動作しません。 (たとえば、254は254と表示され、予想される 'fe'は表示されません)
これを修正するにはどうすればよいですか? また、私はAngularが初めてです。これはJSFiddleを初めて使用したときです。 HTMLからJSウィンドウ内のコードファイル/ sを参照する方法がわかりません。だから私はスクリプトタグの中にコードを入れました。代わりにJSウィンドウにあれば、srcからどのようにコードを参照するのですか?
コードは主にw2schoolsのAngularJSチュートリアルの例であることを付け加えておきます。私はユーザ入力を扱うかどうかを修正しました(これまでのところ成功しませんでした)。
グレートを参照してください! type属性を "number"に設定するとうまくいきました。しかし、JSコードのどこにparseInt関数を使用する必要があるのか分かりません。フィルタとサービスを試してみました。どちらもうまくいかなかった。 また、2番目の質問(コードにJSペインを使用してそれを参照する)の助けをいただければ幸いです。 – PakiPat
@PatrickGomesこれをチェックする、[demo](https://jsfiddle.net/1uso2pzb/) – ram1993