angularjs - 如何使用 ng-init 设置作用域属性?

标签 angularjs

我正在尝试使用 ng-init 设置 $scope 属性的值,但无法在 Controller 的 javascript 中访问该值。我究竟做错了什么?这是一个 fiddle :http://jsfiddle.net/uce3H/

标记:

<body ng-app>
    <div ng-controller="testController" >
        <input type="hidden" id="testInput" ng-model="testInput" ng-init="testInput='value'" />
    </div>
    {{ testInput }}
</body>

JavaScript:

var testController = function ($scope) {
     console.log($scope.testInput);
}

在 javascrippt 中,$scope.testInput 未定义。不应该是“值(value)”吗?

最佳答案

您正尝试在 Angular 完成分配之前读取设置值。

演示:

var testController = function ($scope, $timeout) {
    console.log('test');
    $timeout(function(){
        console.log($scope.testInput);
    },1000);
}

理想情况下,您应该按照@Beterraba的建议使用$watch来摆脱计时器:

var testController = function ($scope) {
    console.log('test');
    $scope.$watch("testInput", function(){
        console.log($scope.testInput);
    });
}

关于angularjs - 如何使用 ng-init 设置作用域属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981627/

相关文章:

javascript - 为什么我的指令不显示我传递给它的字符串

javascript - Ionic/Angularjs 如何解决未知提供商的 Cookie 问题?

angularjs - 如何在 Angular JS 中动态创建 $scope 变量和函数

mysql - 连接到 Node js 服务器时出现错误(angularjs、nodejs、mysql 连接)

angularjs - 显示无效输入的错误消息

javascript - 使用 Javascript 为数组赋值时遇到问题

javascript - 如何检查哪个输入复选框标签随 Angular 2中的值发生变化?

javascript - ng-click 重置按钮仅有效一次

javascript - E2E 测试、单元测试和使用 $httpBackend 模拟数据之间的混淆

javascript - 对于我无法访问的部分内容,如何捕获 401?