当前位置: 首页 > 面试题库 >

ng-model在控制器中未定义

印季
2023-03-14
问题内容

我正在使用离子型,并且具有以下视图:

<ion-view hide-nav-bar="true" ng-controller="loginController" class="login-view">
  <ion-content class="padding">

    <div class="row row-center">
      <div class="col">

        <div id="logo"></div>

        <form>
          <div class="list">
            <label class="item item-input">
              <input type="text" placeholder="Membership No" ng-model="membershipNo">
            </label>
            <label class="item item-input">
              <input type="password" placeholder="Password" ng-model="password">
            </label>
          </div>

          <button class="button button-block button-positive button-login" ng-click="login()">
            Login
          </button>
        </form>

      </div>
    </div>

  </ion-content>
</ion-view>

而我的控制器:

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.membershipNo为“香蕉煎饼”之类的内容,则视图实际上会更新。

但是,当登录功能实际运行时,会提示未定义MembershipNo和密码。我是Angular和Ionic的新手,所以我知道这可能是一些n00b错误…


问题答案:

修改后的报价:

“如果使用ng-model,则必须在其中有一个点。”
将您的模型指向object.property,您会很顺利。

控制者

>     $scope.formData = {};
>     $scope.login = function () {
>       console.log("User logged in with membership no: " +
> $scope.formData.membershipNo +
>       "\n and password: " + $scope.formData.password);
>      }

模板

>     <input type="text" placeholder="Membership No" ng-
> model="formData.membershipNo">
>     <input type="password" placeholder="Password" ng-
> model="formData.password">


 类似资料:
  • 问题内容: 我在我的angular js项目中遇到了$ scope的麻烦。例如,当我在输入字段上使用ng-model =“ modelExample”时,我无法使用$ scope.modelExample在我的js中访问它。还有其他人有类似的问题吗? 这很奇怪,调用了一个函数,但是ng-model没有绑定。请参阅下面的代码,当我提交表单时,将调用refreshResults()函数,但$ scop

  • 问题内容: 如果我的措词不正确,我事先表示歉意。我在的内部有一个文本框,当我尝试获取文本框值时始终为。我只希望它显示我在相应文本框中键入的内容。 似乎是一个问题,那么我该如何创建全局或控制器根级别以便可以访问它? 这是帮助解决问题的JSFiddle:http : //jsfiddle.net/stevenng/9mx9B/14/ 问题答案: 在您的点击表达式中,您可以引用并在您的函数中对其进行访问

  • 问题内容: 我写了下面的代码 我知道它在ng- controller之外,因此我无法绑定数据,但是我的应用程序需要calanderCtrl控制器。我想将此值置于范围内,以便我也可以在其他控制器中使用它。我该怎么做呢? 问题答案: 您可以为此使用发布订阅模式。这样,您避免将变量放在rootscope上。 模板加载时,控制器将被调用。 现在如何运作: Angular不共享范围。每个控制器都有自己的单独

  • 问题内容: 我正在尝试处理ng-repeat循环内的范围问题-我浏览了很多问题,但还无法使我的代码正常工作。 控制器代码: 视图: 这是一个小提琴:http : //jsfiddle.net/cyberwombat/zqTah/ 基本上,我有一个包含多行文本的对象(这是一个传单生成器)。用户可以调整每行文本(文本,字体,大小,颜色等),我想为其创建预览。上面的示例仅显示了输入文本的输入字段,我希望

  • 问题内容: 我有这个reprohttp://embed.plnkr.co/nVCmukG5abpi1Y4ZHkrq,当我单击“ Title3”并在文本框中输入一个值时显示,尽管输入的值显示在UI中,当我单击“单击”按钮时,什么也没有绑定到范围属性$ scope.test。 我不知道ng-switch有什么问题,或者我做错了什么。帮助表示赞赏!!! http://embed.plnkr.co/nVC

  • 问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr