gpt4 book ai didi

javascript - 使用主从 View 的 'this.' 表达式设置属性

转载 作者:行者123 更新时间:2023-12-01 02:51:18 25 4
gpt4 key购买 nike

我正在尝试基于 JSON 文件实现主从 View 。 PHP 运行良好。它带来了应有的数据。 Config.js 或controller.js 工作正常。但是,我收到如下所示的错误。 SET 属性未定义。

我是初学者。我认为输入“this.___”将设置该属性。可是,我好像失踪了。如果不是,可能出什么问题了?我从下面的链接中获取了引用。

谁能告诉我出了什么问题吗?也许,如何设置属性?

(function () {
'use strict';
var app = angular.module('myProject', []);
app.service('ProjectService', function($http) {
$http.get("projects_read.php", {})
.then(function(response){
var pjts = response.data;
this.getProjects = function() { //ERROR occurs
return pjts;
};

this.getProject = function(id) {
for (var i = 0; i < pjts.length; i++) {
if (pjts[i].id === id) {
return pjts[i];
}
}
return null;
}

console.log(pjts);
});
})
})();

[错误]无法设置未定义的属性“getProjects”。

[引用链接] http://plnkr.co/edit/VJxlqguJZGrIutAFLCNc?p=preview

预先感谢您的帮助!

最佳答案

您在错误的上下文 (this) 上设置属性 getProjects

回调function(response){}创建一个新的上下文(在严格模式下未定义,这就是为什么你会得到:Cannot set property 'getProjects' of undefined)尝试在外部保存服务的引用 promise 并使用该上下文。

app.service('ProjectService', function($http) {
var _this = this; //save context of the service
$http.get("projects_read.php", {})
.then(function(response){
var pjts = response.data;

_this.getProjects = function() {
return pjts;
};

this.getProject = function(id) {
for (var i = 0; i < pjts.length; i++) {
if (pjts[i].id === id) {
return pjts[i];
}
}
return null;
}
console.log(pjts);
});
})

关于javascript - 使用主从 View 的 'this.' 表达式设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46954338/

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