gpt4 book ai didi

javascript - 为什么我的变量在 Controller 中未定义,但它在带有数据绑定(bind)的 HTML 页面中正确显示

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

为什么我从 {{myItem}} 获取数据绑定(bind)的值,但在我的 Controller 中,当我尝试分配我获取或输出到控制台的新变量时,我得到 undefined .

这是我的 Controller :

var controllers = angular.module("myItem.controllers", []);
controllers.controller('myItemController', function ($scope, MyItemService) {
$scope.version_model = null;
$scope.itemGroup_model = null;
$scope.item_model = null;

$scope.myItem = null;
$scope.versions = null;
$scope.itemGroups = null;
$scope.hierarchies = null;

$scope.init = function () {

$scope.myItem = MyItemService.getMyItem();
console.log("myItem => id= " + $scope.myItem.versionID + " requestTypeID: " + $scope.myItem.requestTypeID);
$scope.versions = MyItemService.getVersions();
$scope.version_model = $scope.myItem.versionID;
console.log("version_model :" + $scope.version_model + "scope.myItem.versionID : " + $scope.myItem.versionID);

$scope.itemGroups = MyItemService.getItemGroups();
$scope.itemGroup_model = $scope.myItem.itemGroup;
console.log("itemGroup_model :" + $scope.itemGroup_model + " scope.myItem.itemGroup : " + $scope.myItem.itemGroup);

$scope.hierarchies = MyItemService.getItemList($scope.itemGroup_model);
$scope.item_model = $scope.myItem.itemName;
console.log("item_model :" + $scope.item_model + " scope.myItem.itemName : " + $scope.myItem.itemName);
}

$scope.getItems = function (group) {
$scope.hierarchies = MyItemService.getHierarchyList(group);
}

每当我尝试从 $scope.myitem 中分配任何内容时,我都会遇到未定义的情况。我尝试在 init 内部、init 外部进行设置。除了 _model 值未定义的地方,我的页面上的所有内容都有效,一旦我与某些内容交互并且它得到更新,所有内容都可以正常工作,只是不能初始化时

更新

这就是我的服务的样子

angular.module('servicefactories', [])
.factory('MyItemService', function ($http, $q) {
obj.getMyItem= function () {
var mypromise = $q.defer();
$http.get('getforEdit')
.success(function (data, status, headers, config) {
mypromise.resolve(data);
});

return mypromise.promise;
}

return obj;

});

最佳答案

我怀疑这是异步调用的问题。您可以使用 Promise 上的 then 方法来访问数据并在数据来自服务器后进行分配。类似的东西

MyItemService.getMyItem().then(function(data) {
$scope.myItem=data;
console.log("myItem => id= " + $scope.myItem.versionID + " requestTypeID: " + $scope.myItem.requestTypeID);
$scope.versions = MyItemService.getVersions();
$scope.version_model = $scope.myItem.versionID;
console.log("version_model :" + $scope.version_model + "scope.myItem.versionID : " + $scope.myItem.versionID);
});

关于javascript - 为什么我的变量在 Controller 中未定义,但它在带有数据绑定(bind)的 HTML 页面中正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401874/

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