输入值未显示(AngularJS)

时间:2015-07-30 10:48:34

标签: javascript angularjs

我有这个控制器:

app.controller('controlFormulario', function($scope) {
  this.formulario = [];
  this.formulario.fecha = new Date();
});

......这条指令:

app.directive('formulario', [function() {
  return {
    restrict: 'E', // C: class, E: element, M: comments, A: attributes
    templateUrl: 'modules/formulario.html'

  };

...而且这个观点:

<div class="form-group">
  <label for="fecha">Fecha</label>
  <input type="fecha" class="form-control" id="fecha" ng-model="fecha" value="{{formCtrl.formulario.fecha | date}}"  disabled>
</div>

正如您可能猜到的,属性值具有日期,完全过滤等等。这里没问题。当您看到网站时发现实际问题,并发现输入没有显示任何内容。 &#34;值&#34;属性是完美分配的,但它没有在输入框中显示。

为什么呢?难道我做错了什么?尝试使用ng-init,ng-value ...我在AngularJS上再见了,刚刚结束了基础教程,我正在尝试练习并获得更多知识,所以也许我可以错过了什么。

任何帮助?

2 个答案:

答案 0 :(得分:1)

您需要将data属性存储到$ scope。

点击此链接:https://docs.angularjs.org/guide/scope

答案 1 :(得分:1)

作为最佳做法,您不应该使用$scope,而应该像您一样使用controllerAs,因此,在您的控制器中:

var cf = this;

然后,而不是使用

this.formulario = []; 
this.formulario.fecha = new Date();
你应该

cf.formulario = [];
cf.fetcha = new Date();

然后,在你的HTML中,你会有

ng-controller="controlFormulario as cf"

然后,输入model变为:cf.fetcha,控制器中的所有其他范围现在应该以{{1​​}}为前缀

cf.
  

这是一个很好的Article,可以更好地解释这个