AngularJs缓存用于值输入的ng-model

时间:2016-02-24 09:17:32

标签: angularjs angular-ngmodel

这是我的表格:

# Sample data.
df = pd.DataFrame({'a': range(5), 'b': range(5)}, index=pd.DatetimeIndex(start='2016-1-1', periods=5, freq='D'))

idx = pd.DatetimeIndex(start='2016-1-1', end='2016-2-29', freq='D')  # freq='B' for weekdays.
df.reindex(idx, fill_value=0).head(8)
            a  b
2016-01-01  0  0
2016-01-02  1  1
2016-01-03  2  2
2016-01-04  3  3
2016-01-05  4  4
2016-01-06  0  0
2016-01-07  0  0
2016-01-08  0  0

在我的控制器中,我给compte.nom赋予这样的价值:

<div class="row responsive-sm" >
  <div class="col">
    <label class="item item-input item-stacked-label">
      <input type="text" ng-model="compte.nom" placeholder="Nom" >
    </label>
  </div>
</div>

<div class="row">  
  <div class="col">
    <button class="button button-block" ng-controller="detailsCompteInformation" ng-click="modifInfo()">Modifier mes informations</button>
  </div>
</div>

但是当用户点击我的按钮提交表格时我会调用modifInfo():

var nom="";

if(angular.isObject(response.field_nomFamille))
{
     nom=response.field_nomFamille.und[0].value;
}

dataDrupal={nom:nom};
$scope.compte=dataDrupal;

此功能位于我的控制器$scope.modifInfo = function() { console.log($scope.compte); }

如果用户更改了输入compte.nom中的值,则无法获取新值。我得到了我的初始价值。

如何刷新.controller('detailsCompteInformation')以从表单中获取新值?

1 个答案:

答案 0 :(得分:0)

你有2个div块。 第一个没有任何控制器 第二个是绑定到detailsCompteInformation控制器。

  

在我的控制器中,我给compte.nom赋予这样的价值:

我想你在detailsCompteInformation控制器中为compte.nom赋予了价值,那么它与你的第一个块(它有你的输入)无关。您应该尝试使用包装器包装这两个div块并将其绑定到detailsCompteInformation控制器,然后在第二个块中删除detailsCompteInformation。 像这样:

<div ng-controller="detailsCompteInformation">
  <div class="row responsive-sm" >
    <div class="col">
      <label class="item item-input item-stacked-label">
        <input type="text" ng-model="compte.nom" placeholder="Nom" >
      </label>
    </div>
  </div>

  <div class="row">  
    <div class="col">
      <button class="button button-block" ng-click="modifInfo()">Modifier mes informations</button>
    </div>
  </div>
</div>