输入字段绑定的值 angularjs
value of input field bind in angularjs
我的浏览器中有一个输入字段时出现奇怪的行为。当我在开发人员控制台中检查它时,它看起来像这样:
<input type="text" name="siteName" ng-model="model.name" minlength="3"
maxlength="40" ng-disabled="!model.isEditable || disableUpdate"
required=""
class="ng-pristine ng-untouched ng-empty ng-valid-namevalidation ng-invalid ng-invalid-required ng-valid-minlength ng-valid-maxlength">
页面呈现后,在 chrome 开发者控制台中,我 select 这个输入字段是这样的:
var x = document.querySelector('input[name="siteName"]')
我在控制台中得到了它。
此输入字段在 UI 中有一个值(一个字符串,不为空) - 由 angularjs 以这种方式填充: ng-model="model.name". model.name
具有有效的字符串值。
当我在控制台中调用 x.value
时,我得到一个空字符串。
此外,在 chrome 开发者控制台中,当检查一个元素时,我可以使用 $0 访问它。 $0.value returns 给我正确的值。
有人遇到过这样的问题吗?知道如何使用查询 select 或输入字段的值吗?
谢谢。
当代码更改 $scope 值时,AngularJS 框架需要一个摘要周期来更新 DOM,并且浏览器需要一个 tick 来呈现对 DOM 的更改。
在检查 DOM 个元素之前使用 $timeout 服务等待:
app.controller("ctrl",function($scope, $timeout) {
$scope.model = { name: "siteXXXX" };
var x = document.querySelector('input[name="siteName"]');
console.log("before ",x.value); //undefined
//ADD time to render
$timeout(function() {
console.log("after", x.value); //siteXXXX
});
})
有关详细信息,请参阅
如果您尝试从 chrome 开发人员控制台访问 angular 范围,
尝试angular.element(document.querySelector("<selectors>")).scope()
您可以在以下答案中获得有关此查询的更多信息
How do I access the $scope variable in browser's console using AngularJS?
我的浏览器中有一个输入字段时出现奇怪的行为。当我在开发人员控制台中检查它时,它看起来像这样:
<input type="text" name="siteName" ng-model="model.name" minlength="3"
maxlength="40" ng-disabled="!model.isEditable || disableUpdate"
required=""
class="ng-pristine ng-untouched ng-empty ng-valid-namevalidation ng-invalid ng-invalid-required ng-valid-minlength ng-valid-maxlength">
页面呈现后,在 chrome 开发者控制台中,我 select 这个输入字段是这样的:
var x = document.querySelector('input[name="siteName"]')
我在控制台中得到了它。
此输入字段在 UI 中有一个值(一个字符串,不为空) - 由 angularjs 以这种方式填充: ng-model="model.name". model.name
具有有效的字符串值。
当我在控制台中调用 x.value
时,我得到一个空字符串。
此外,在 chrome 开发者控制台中,当检查一个元素时,我可以使用 $0 访问它。 $0.value returns 给我正确的值。
有人遇到过这样的问题吗?知道如何使用查询 select 或输入字段的值吗?
谢谢。
当代码更改 $scope 值时,AngularJS 框架需要一个摘要周期来更新 DOM,并且浏览器需要一个 tick 来呈现对 DOM 的更改。
在检查 DOM 个元素之前使用 $timeout 服务等待:
app.controller("ctrl",function($scope, $timeout) {
$scope.model = { name: "siteXXXX" };
var x = document.querySelector('input[name="siteName"]');
console.log("before ",x.value); //undefined
//ADD time to render
$timeout(function() {
console.log("after", x.value); //siteXXXX
});
})
有关详细信息,请参阅
如果您尝试从 chrome 开发人员控制台访问 angular 范围,
尝试angular.element(document.querySelector("<selectors>")).scope()
您可以在以下答案中获得有关此查询的更多信息
How do I access the $scope variable in browser's console using AngularJS?