Javascript 无法在JS而不是HTML中初始化ng模型
HTML: 我最初认为只使用JS就足以初始化值,因此我去掉了复选框和表单的ng init,最后得到了错误:Javascript 无法在JS而不是HTML中初始化ng模型,javascript,html,angularjs,initialization,Javascript,Html,Angularjs,Initialization,HTML: 我最初认为只使用JS就足以初始化值,因此我去掉了复选框和表单的ng init,最后得到了错误: var myApp = angular.module('myApp', []); myApp.controller('AppCtrl', function ($scope, $http) { var refresh = function() { $scope.item.check = false; $scope.item.name = ""; } //Call upon
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', function ($scope, $http) {
var refresh = function() {
$scope.item.check = false;
$scope.item.name = "";
}
//Call upon loading app to initialize values, also called upon events to refresh the field
refresh();
如果我只保留两个ng init,应用程序就会工作。当我只从这两个元素中的一个元素中删除ng init时(因此从复选框或表单中删除),它也会起作用,但如果我同时删除这两个元素,它将不起作用。这是怎么回事?我这样做是正确的还是有更好的初始化方法
谢谢 您可以在控制器的第一行添加
$scope.item={}
当您试图访问$scope.item.name
时,当$scope.item
本身不存在时(或者在某些情况下不是对象),Javascript会报告错误
当您执行
ng init
时,angular会为您创建对象,这样您就不会出现错误。将此添加到控制器中
TypeError: Cannot set property 'name' of undefined
我懂了!我们将项初始化为对象或字典?对象,这样说正确吗。javascript没有字典类型AFAIK,我们只使用object来实现一个。
TypeError: Cannot set property 'name' of undefined
$scope.item = {};