gpt4 book ai didi

javascript - 为什么我在 View 中看不到这个变量?

转载 作者:行者123 更新时间:2023-11-28 19:20:12 25 4
gpt4 key购买 nike

这是我的路由器的相关部分:

app.js

.state('app.browse', {
url: "/browse/:question",
controller: 'QCtrl',
resolve: {
question: function($stateParams, qService){
console.log(qService.getQuestion($stateParams.question).q);
return qService.getQuestion($stateParams.question).q;
}
},
views: {
'menuContent': {
templateUrl: "templates/browse.html"
}
}
})

/* QSERVICE HERE */
.factory('qService', function() {
var questions = [ {'q': "text text"} ];
return {
questions: questions,
getQuestion: function(index) {
return questions[index]
}
}
})

controllers.js

.controller('QCtrl', function($scope, question){
$scope.questions = qService.questions;
$scope.question = question;
})

正如控制台日志所示,它准确地找到了我正在寻找的内容。

但是在我的浏览器 View 中,我无法获取 question 变量!

浏览器.html

<ion-view view-title="Browse">
{{question}}
</ion-content>

它总是显示为空!为什么会发生这种情况,如何解决?

最佳答案

Resolve 不会将问题绑定(bind)到您的 Controller 。

在你的 Controller 中执行此操作

.controller('QCtrl', function ($scope, question) {
$scope.question = question;
})

此外 - 在您的状态对象中,问题传递不正确。更正:

.state('app.browse', {
url: "/browse/:question",
resolve: {
question: function($stateParams, qService){
return qService.getQuestion($stateParams.question);
}
},
views: {
'menuContent': {
templateUrl: "templates/browse.html",
controller: 'QCtrl',
}
}
})

您的状态对象中还缺少 templateUrl。更新此内容以反射(reflect)模板的位置,应该可以正常使用了:)

关于javascript - 为什么我在 View 中看不到这个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039605/

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