在控制器中,ng-model未定义

30 浏览
0 Comments

在控制器中,ng-model未定义

我使用Ionic框架,以下是我的视图:


这是我的控制器:

app.controller('loginController', ['$scope', '$localstorage',
    function($scope, $localstorage) {
        $scope.membershipNo;
        $scope.password;
        $scope.login = function () {
            console.log("用户使用会员号登录:" + $scope.membershipNo +
    "\n 密码为:" + $scope.password);
        }
    }
]);

我不明白的是,当我点击按钮时,login函数被正确调用。而且,如果在控制器中将$scope.membershipNo设置为"香蕉煎饼"之类的值,视图实际上会更新。

然而,当login函数实际运行时,它显示membershipNo和password未定义。我对Angular和Ionic还比较新,所以我知道这可能是一些初学者的错误...

0
0 Comments

ng-model is undefined in controller问题的出现原因可能是在控制器中没有正确定义$scope变量。解决方法是在控制器中正确定义$scope变量,然后将其与HTML页面中的ng-model绑定。

为了解决这个问题,我们需要在控制器中定义$scope变量,以确保它们与HTML页面中的ng-model正确绑定。具体步骤如下:

1. 在控制器中,使用$scope关键字定义需要绑定的变量。例如,我们可以使用以下代码定义membershipNo和password变量:

$scope.membershipNo = '';
$scope.password = '';

2. 确保控制器的定义与上述步骤中定义的变量一致。例如,我们可以使用以下代码定义一个名为loginController的控制器,并将上述定义的$scope变量添加到控制器中:

app.controller('loginController', ['$scope', '$localstorage',
  function($scope, $localstorage) {
    $scope.membershipNo = '';
    $scope.password = '';
    // 其他控制器逻辑
    $scope.login = function () {
      console.log("User logged in with membership no: " + $scope.membershipNo +
      "\n and password: " + $scope.password);
    }
  }
]);

通过按照上述步骤,在控制器中正确定义$scope变量,并将其与HTML页面中的ng-model绑定,即可解决ng-model is undefined in controller问题。这样,当用户在页面上输入值时,控制器将能够正确访问并使用这些值。

0
0 Comments

在上述代码中,存在一个问题:在控制器中使用了ng-model,但是ng-model未定义。

这个问题的产生原因是:在控制器中,没有正确引入ng-model所在的模块。

解决这个问题的方法是:在控制器中正确引入ng-model所在的模块。

具体代码如下:

app.controller('loginController', ['$scope',
  function($scope) {
    // 引入ng-model所在的模块
    angular.module('ngModel', []);
    
    $scope.data={};
    $scope.login = function () {
      console.log("User logged in with membership no: " + $scope.data.membershipNo +
      "\n and password: " + $scope.data.password);
    }
  }
]);

通过这样的修改,即可解决ng-model未定义的问题。

0
0 Comments

在控制器中,ng-model未定义的问题是因为在使用ng-model时,必须在其内部使用一个点。解决方法是将模型指向一个对象的属性。

在上述问题的解决方案中,我们可以看到在控制器中的$scope中定义了一个formData对象,其中包含了membershipNo和password两个属性。在模板中,使用ng-model指令将输入框与对应的formData属性进行绑定。

通过这样的方式,我们可以解决ng-model未定义的问题。但是,为什么在第一次尝试中会出现这个问题呢?这个解决方案没有提供明确的答案。

正如上述引用中提到的,将membershipNo和password包装在一个'credentials'对象中,魔法般地解决了问题。但是,为什么会这样呢?为什么其他变量在不被包装在对象中的情况下也能正常工作呢?

0