javascript - 无法访问我的 Javascript 对象的属性

标签 javascript angularjs

我正在使用 Angular.js 从 API 中获取单个记录。我将记录作为对象取回,我可以记录该对象并查看它的属性,但我无法访问任何属性。我只是得到未定义

var template = Template.get({id: id});
$scope.template = template;
...
console.log(template); // displays object
console.log(template.content); // undefined

Screenshot of console.log(template);

更新

var id = $routeParams.templateId;
var template = Template.get({id: id});
$scope.template = template;

/*** Template placeholders ***/
$scope.updatePlaceholders = function () {
    var placeholders = [];
    var content = template.content;

    console.log(template); // dumps the object in the screenshot
    console.log("content" in template); // displays false

    // get placeholders that match patter
    var match = content.match(/{([A-z0-9]+)}/gmi);
    ...
}

$scope.$on('$viewContentLoaded', function(){
    $scope.updatePlaceholders();
});

最佳答案

您需要等待 HTTP 请求完成,然后在回调中指定要执行的操作。在本例中,我更进一步,向您的模板对象添加了一个监听器,以便 updatePlaceholders 和您的资源之间不存在回调依赖关系。

var id = $routeParams.templateId;
var template = Template.get({id: id}, function(res) {
    $scope.template = template;
});

/*** Template placeholders ***/
$scope.updatePlaceholders = function () {
    var placeholders = [];
    var content = $scope.template.content;

    console.log($scope.template); 
    console.log("content" in $scope.template); 

    // get placeholders that match patter
    var match = content.match(/{([A-z0-9]+)}/gmi);
    ...
}

$scope.$watch('template', function(newValue){
    if(newValue) $scope.updatePlaceholders();
});

关于javascript - 无法访问我的 Javascript 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341808/

相关文章:

javascript - 应用没有 ng-class 的类?

angularjs - 如何从 Controller 内添加 ng-show 功能?

javascript - Angularjs UI 引导弹出窗口难以渲染 HTML

php - 传递可变大小的表单

javascript - 根据函数结果更改数据百分比属性?

javascript - 使用箭头函数作为传递给 requestAnimationFrame 的方法

javascript - 如何检查元素是否匹配 :empty pseudo-class in pure JS?

javascript - 我怎样才能为结束播放声音创造一个 promise ?

javascript - 如何在键入和检查条件时更改 angularjs 中的文本框类?

javascript - 如何使用 Ionic 返回文本框的值?