gpt4 book ai didi

javascript - Angular 服务不传递值

转载 作者:行者123 更新时间:2023-12-02 15:38:08 25 4
gpt4 key购买 nike

尝试在 Controller 之间使用 Angular 服务获得一个简单的随机生成器。到目前为止:

JS。文件

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

myServiceModule.controller('SecondController',['$scope','randomizer', function($scope,randomizer){
$scope.initialNumber = 0;
console.log('Initial number in second controller: ' + $scope.initialNumber);
$scope.generateRandom = function(rng){
console.log('called w/ ' + rng );
$scope.initialNumber = randomizer.genRan(rng);
console.log('Randomed: ' + $scope.initialNumber);
}
}]);

myServiceModule.service('randomizer',[function(range){
this.genRan = function(){
console.log('inside genRan');
return (Math.floor(Math.random() * range) + 1 );
}
}]);

HTML 文件

<div id="second" ng-controller="SecondController">
<label>Press button to Generate a random number between 1-100:</label>
<button ng-click="generateRandom(100);">Generate</button>
</div>

我的控制台输出如下:

  1. 第二个 Controller 中的初始编号:0
  2. 调用了 100
  3. genRan 内部
  4. 随机:NaN
<小时/>

调用服务时应该传递一个值,对吗?相反,当调用服务函数调用 (.genRan) 时,我不断获得 NaN 值。我是服务新手,该函数正在正确调用,但为什么没有将值返回到 Controller ?

最佳答案

看起来应该将 range 定义为 genRan 函数中的参数,试试这个:

myServiceModule.service('randomizer', [function() {
this.genRan = function(range) {
console.log('inside genRan');
return (Math.floor(Math.random() * range) + 1 );
}
}]);

关于javascript - Angular 服务不传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774050/

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