从文本框输入中获取值而不使用ng-repeat

时间:2015-12-31 02:51:33

标签: python angularjs

我是AngularJS的新手。

我想从没有ng-repeat的输入文本中获取值,其中值来自Python。

Python的价值:

{{user.id}}

我的文字输入:

<form ng-submit="SendHttpPostData()">
  <p><input type="text" ng-model="user" value="{{user.id}}"></p>
  <input type="submit" value="Submit" />
</form>

我的问题是:

  1. user.id的值不会显示在输入文字中。
  2. 单击“提交”按钮时,我得到未定义的结果。

1 个答案:

答案 0 :(得分:0)

默认情况下,Angular在初始化数据绑定时不会读取输入的value属性。但是,您可以编写一个指令来为您执行此操作:

app.directive('value', function () {
  return {
    restrict: 'A',
    require: '?ngModel',
    link: function postLink(scope, element, attrs, ngModel) {
      if (!ngModel)
        return;

      var val = attrs.value || element.val() || element.text();
      ngModel.$setViewValue(val);
      ngModel.$render();
    }
  };
});

这将确保只要value属性与ng-model一起出现,它就会用于初始化绑定。有关演示,请参阅此Plunker

但请注意,这不是从后端传递数据到Angular的推荐方法。通常,最好使用$http$resource编写JSON API端点并将数据加载到客户端。