从装饰器添加新属性

时间:2015-10-29 20:01:09

标签: javascript angularjs

我试图在父亲和指令的模板驱动程序之间传递参数,但这似乎是出现故障

控制器中的方法是

vm.activoHora = function(eventos, hora, dia) {

  var a = eventos;
  var b = hora;
  var c = moment(dia).format('MM/DD/YYYY');


  angular.forEach(eventos, function(value, key) {

    var fechaEv = moment(value.startsAt).format('MM/DD/YYYY');
    if (fechaEv === c)
      var horaEv = moment(value.startsAt).format('HH:mm');

    if (horaEv === b)
      $scope.valor = true;
    return $scope.valor;
  });

  return ({
    ' btn-danger disabled': $scope.valor
  });

}

这应评估当天并返回一个对象css以禁用抽屉,evento用于与模板通信

<mwl-calendar 
          evento="vm.activohora(event,hora,dia)" 
          events="vm.events" 
   ...........            
  </mwl-calendar>

并使用ng-class

评估模板
 <li   class="list-group-item col-md-12 " ng-class="vm.evento(vm.view.events,h_m,day)" ng-repeat="h_m in [] | tiempoTabla:8:16:15" style="padding: 1px !important">
      <p  class="hora text-center" style=" margin: inherit" ng-click="vm.clic(day.date,h_m)">{{h_m}}</p>
 </li>

以下是问题发生的代码http://plnkr.co/edit/XihZabCHjLHtPiCQnbUi?p=preview

1 个答案:

答案 0 :(得分:1)

正在调用

vm.activohora,而实际函数是vm.activoHora

正在使用

$scope,而它没有被注入控制器。

eventos, hora, dia参数未在范围内定义。

问题需要仔细调试,并且与主题无关。属性绑定很好,但应该使用单向绑定(@)代替函数返回的对象。