如何获得name2的值?



function DemoController($scope) {
    $scope.name1 = 'LISA';
    //How can I get the value of name2?
    console.log($scope.name2) //this does not work
}

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="" ng-controller="DemoController">
    {{ name1 }}
    <input type="text" placeholder="Lisa" ng-model="name2">
</div>

最佳答案

发生这种情况是因为您没有在控制器内部初始化name2。因此在name2的作用域中没有名为console.log的属性。和name2属性将在您第一次更改输入后立即在作用域上创建。因此,这就是为什么它得到undefined的原因。

这是Demo Plunker,请检查控制台。

$scope.$watch('name2', function(newVal, oldVal) {
    console.log("new value : " + newVal);
    console.log("old value : " + oldVal);
});


我在$watch属性上添加了一个name2(并且该$watch函数将在更改name2的值时执行),请注意,其undefined首先出现,并且在您键入后将立即使用输入值文本框中的内容。

关于javascript - 如何从输入框中获取angularJS中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29407327/

10-12 15:25