如何从angularjs中的弹出窗口获取数据

时间:2015-06-12 12:49:54

标签: angularjs

我正在尝试通过点击按钮在弹出窗口中输入数据,但是它会为输入数据检索未定义的值,请提供帮助。

<modal title="Login form" name="modaloption" ng-model="modaloption" visible="showModal">
    <form role="form" >
      <div class="form-group">
        <label for="email">Email address</label>
        <input type="email" class="form-control" id="email" ng-model="email" name="email" placeholder="Enter email" />
      </div>
      <div class="form-group">
        <label for="password">Password</label>
        <input type="password" class="form-control" ng-model="password" name="password" id="password" placeholder="Password" />
      </div>
      <button type="submit" name="submit" ng-click="submit()" class="btn btn-default">Submit</button>
   </form>
  </modal>

脚本:

 $scope.submit = function(){
    console.log("testing button");
    $scope.showModal = !$scope.showModal;
    console.log("email:"+$scope.email);
};

2 个答案:

答案 0 :(得分:0)

你还没有说过这个模态指令的来源,以及它所记录的位置,但据推测,它定义了自己的范围,这意味着ng-model填充的名称和密码都在模态中指令范围,而不是在控制器范围内。这也是在ng-if或ng-repeat中使用ng-model时会发生的情况。

确保在控制器中有这行代码:

$scope.modalState = {};

并在视图中使用

ng-model="modalState.email"

答案 1 :(得分:0)

似乎工作正常,请参阅此jsfiddle:http://jsfiddle.net/dotywy1j/1/

这打印出我从输入字段输入的内容。您可能遇到的问题是电子邮件的输入标记不会存储实际值,除非它是有效的电子邮件。(something@something.com)

 <input type="email" class="form-control" id="email" ng-model="email" name="email" placeholder="Enter email" />