1

我使用了基本的 Angular 脚本,它可以实时更新您在我们指定的任何元素的输入字段中输入的内容...

  <!doctype html>
  <html ng-app>
    <head>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
    </head>
    <body>
      <div>
        <label>Name:</label>
        <input type="text" ng-model="yourName" placeholder="Enter a name here">
        <hr>
        <h1>Hello {{yourName}}!</h1>
      </div>
    </body>
  </html>

我是 Angular 的新手。我在 may rails 应用程序上使用了这个。但问题是,我使用 ng-model 的字段在提交后会重置其值。即使设置 'value' 属性也不起作用。我怎样才能解决这个问题?

从我的 rails 应用程序生成的确切代码:

<form accept-charset="UTF-8" action="/members" class="custom" id="new_member" method="post">

      <div class="row collapse text-field">
        <div class="small-4 columns">
          <h3>Add Member : </h3>
        </div>
        <div class="small-6 columns left inline">
          <h3 class="subheader inline">&nbsp;{{newEntry.name}}</h3>
        </div>
      </div>



        <div class="row collapse text-field">
          <div class="small-3 columns"> 
            <label class="prefix" for="member_name">Full Name</label>
          </div>
          <div class="small-7 columns left">
            <input class="input" id="member_name" name="member[name]" ng-model="newEntry.name" type="text" value="gj" />
          </div>
        </div>


        <div class="row collapse text-field">
          <div class="small-3 columns"> 
            <label class="prefix" for="member_address">Address</label>
          </div>
          <div class="small-9 columns">
            <textarea class="input" height="115" id="member_address" name="member[address]">
            </textarea>
          </div>
        </div>

        <div class="row">
          <div class="small-9 columns" ><input class="button radius" name="commit" type="submit" value="Add Member" /></div>
        </div>
</form>

注意:我没有使用 ng-controller。我是 Angular 的新手。如果需要,请告诉我如何将上述内容转换为控制器。我可以获取该字段的值并将其发送回 Rails 中的表单。它在一个变量中。但是 Angular 一直在擦拭它!

注意2:这个问题只存在于我使用angular-model的输入字段。所有其他字段都保留了数据!

4

1 回答 1

3

好的,这不是最好的解决方案,但你可以这样做:

<input type="text" ng-init="yourName = 'Your Value Goes Here'" ng-model="yourName" placeholder="Enter a name here">

ng-init 指令在应用程序初始化时运行,因此您的值将分配给 angular 的内部“yourName”模型并在视图中相应更新。

这将解决您的问题,但它不是最好的方法。希望这能让你暂时开始 - 我会尽快尝试发布一个更“理想”的解决方案。

于 2013-08-09T14:54:06.123 回答