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

2024-01-06

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

markup:

<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 未定义。不应该是“价值”吗?


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

Demo:

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

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

var testController = function ($scope) {
    console.log('test');
    $scope.$watch("testInput", function(){
        console.log($scope.testInput);
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ng-init 设置作用域属性? 的相关文章

随机推荐