javascript - 无法从 ng-click 获取从 $http 服务获取的数据

标签 javascript angularjs

这是我的 Controller 的一部分:

function($scope, $http, $stateParams, $timeout, $q, $ionicPopup, $ionicActionSheet){
    $http.get('topics/' + $stateParams.subTopicId + '.json').
    success(function(data, status,header, config) {
        $scope.questions = data;
    });
}

现在这是我的 View 的一部分:

<button ng-click="someFunc('{{questions[qNum].opt1}}')">
    {{questions[0].opt1}} 
</button>

In the above view {{questions[0].opt1}} works perfectly. But when passed as an arg to ng-click it becomes empty.

再次在我的 Controller 中:

 function someFunc(aValue){
        alert(aValue); // Empty
    }

为什么变量aValue的值为空。

另一方面,如果我像这样在我的 Controller 中直接声明 $scope.questions:

$scope.question = [
                   { ... }
                  ];

然后 someFunc 正确显示变量的值。这里发生了什么? 我做错了什么?

最佳答案

试试这个:

<button ng-click="someFunc(questions[qNum].opt1)">

此外,您在显示属性时显式绑定(bind)到元素 0,但在您的 ng-click 中您使用的是变量 qNum,因此请确保它已定义。

关于javascript - 无法从 ng-click 获取从 $http 服务获取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500923/

相关文章:

javascript - DOM节点递归

javascript - 在现有 json 对象中添加新键(数组)

javascript - 停止重新定位光标

javascript - 如何在 Angularjs 中使用 Dropzone 显示已存储在服务器上的文件

javascript - 更新本地存储中数组中的项目

Javascript 数组 - 迭代数据元素

javascript - 需要关闭下拉点击点击 body

javascript - 如何将项目分配给选择器以获取数据列表作为数组形式的响应?

javascript - 获取脚本标签的数据属性?

javascript - Angular js ui-router共享 Controller