gpt4 book ai didi

javascript - 如何将数据从输入传递到自定义服务?

转载 作者:行者123 更新时间:2023-12-03 04:19:42 25 4
gpt4 key购买 nike

我是 AngularJS 的新手,我有一个问题:如何显示插入输入框中的数字的十六进制等效值?

我正在使用ng-change来查看输入是否被修改,并且输出也应该根据输入而变化。

这是代码:

<div ng-app="myApp" ng-controller="myCtrl">
<input type="number" ng-model="in" ng-change="hex(in)">
{{in}} <br>{{hex}}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.js"></script>
<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.in= 11;
$scope.hex = hexafy.myFunc($scope.in);
});
</script>

最佳答案

为什么不起作用?

在您的输入中,您尝试调用一个函数:

<input type="number" ng-model="in" ng-change="hex(in)"> 

但是$scope.hex不是 Controller 中的函数:

$scope.hex = hexafy.myFunc($scope.in);
<小时/>

如何修复它?

将其更改为:

$scope.hex = function() {
$scope.result = hexafy.myFunc($scope.in);
}

var app = angular.module('myApp', []);

app.service('hexafy', function() {
this.myFunc = function (x) {
return x.toString(16);
}
});

app.controller('myCtrl', function($scope, hexafy) {
$scope.in= 11;
$scope.hex = function() {
$scope.result = hexafy.myFunc($scope.in);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
<input type="number" ng-model="in" ng-change="hex()">
{{in}} <br>{{result}}
</div>

关于javascript - 如何将数据从输入传递到自定义服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44002438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com