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

标签 javascript angularjs angularjs-service

我是 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/

相关文章:

javascript - 如何从 AngularJS 或 JavaScript 中获取 <option> 的值

node.js - 通过 Angular 加载 Jade 模板

javascript - 当成员加入我的服务器时,discord.js 无法向成员添加角色

javascript - 在 Node 中验证用户时得到奇怪的输出

javascript - Backbone Marionette 'itemViewContainer' 未找到

javascript - Angular 工厂变量更改未反射(reflect)在 Controller 中

angularjs - 如何使用不污染全局范围的 TypeScript 类定义 AngularJS 服务?

javascript - 在网络 worker 内部,如何从字符串中找到 html 属性?

javascript - 函数的 $q promise 在解析时不会将其值传播到 Angular View 中

javascript - 如何在 angularjs 中将数据从工厂传递到我的 Controller ?