【问题标题】:How to make angular change value on submit?如何在提交时进行角度变化值?
【发布时间】:2015-09-26 17:46:08
【问题描述】:

有人可以指导我做什么,以便当我按下“提交”按钮时,myName 变量会更新吗?谢谢!

app.js:

app.controller('SomeController', ['$scope', 'emails', function($scope, emails) {
  emails.success(function(data) {

    $scope.emails = data;
  });

    $scope.myName = "John"; 

}]); 

view.html

<div ng-controller="SomeController">
    <form name="messageForm" ng-submit="update(myName)">
      <input type="text" ng-model="myName"/>
        <h1>{{myName}}</h1>
      <input type="submit" value="Send Message"/>
    </form>
    </div>

【问题讨论】:

    标签: javascript html angularjs angularjs-scope


    【解决方案1】:

    只要你输入,它就会更新:

    <input type="text" ng-model="myName"/>
    <h1>{{myName}}</h1>
    

    这只会在您点击提交时更新:

    <form name="messageForm" ng-submit="update(myName)">
      <input type="text" ng-model="myName"/>
        <h1>{{myUpdatedName}}</h1>
      <input type="submit" value="Send Message"/>
    </form>
    

    在你的控制器上你应该有:

    $scope.update = function(name) {
      $scope.myUpdatedName = name;
    };
    

    请记住,您的表单应该包含在任何声明您的 SomeController... 的组件中...例如

    <div ng-controller="SomeController">
      <!-- your form goes here -->
    </div>
    

    【讨论】:

      【解决方案2】:

      您的控制器中似乎缺少更新功能:

      app.controller('SomeController', ['$scope', 'emails', function($scope, emails) {
        emails.success(function(data) {
      
          $scope.emails = data;
        });
      
        $scope.myName = "John"; 
        $scope.update = function(name) {
          $scope.myName = name;
        };
      
      }]); 
      

      【讨论】:

      • 是的,很明显我错过了。这是朝着正确方向迈出的一步,但似乎不起作用。当我点击提交时,它不会为我更新变量。
      • 您是否在控制台中遇到任何错误?我怀疑这可能是由 emails.success... 部分引起的,语法很奇怪。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多