gpt4 book ai didi

javascript - 为什么我的 Angular 范围变量未定义?

转载 作者:行者123 更新时间:2023-12-03 10:47:06 25 4
gpt4 key购买 nike

我有一个包含 6 个引号的引号数组。接下来,我有一个 getRandomNum 函数,它返回 0 到 6 之间的数字。

在我的 chooseQuote 函数中使用:

<body ng-app="myApp" ng-controller="DashCtrl as dash">

<div class="quotes" title="Quotes">
<p>{{dash.chooseQuote(dash.num)}}</p>
</div>

</body>

我的 Dash Controller 中的代码:

var vm = this;
var num = 0;

var quotes = [
{
quote: "Money won't create success, the freedom to make it will.",
author: "Nelson Mandela"
},
// etc ...
];

function getRandomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

num = getRandomNum(0, 5);

vm.chooseQuote = function(i) {
console.log(i);
return quotes[i]["quote"];
}

console.log(num);
console.log(vm.chooseQuote(num));

现在检查控制台,我得到的数字是未定义的,并且无法获取未定义的“引用”。这发生在我的 chooseQuote 函数第二次调用时。

第一个console.log: enter image description here

工作正常,下一个打印正确引用的 console.log 也是如此,但是在最后一个 console.log 上,第二次进入我的 chooseQuote 函数时,我得到 i/num 未定义:

enter image description here

你明白我哪里错了吗?

最佳答案

num 在您提供的代码中定义为私有(private) Controller 变量。看起来好像 vm 是您用来引用 Controller 的 $scope 的内容,因此您需要将 num 设为 vm< 的属性 因此它暴露在 View 中。

vm.num = 0;

...

vm.num = getRandomNum(0, 5);

...

console.log(vm.num);
console.log(vm.chooseQuote(vm.num));

关于javascript - 为什么我的 Angular 范围变量未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28534064/

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