簡體   English   中英

如何在angular.js中將變量從指令綁定到控制器?

[英]How can I binding variable from directive to controller in angular.js?

我使用dateDisable變量來隱藏div date-warp ,即“添加一個”按鈕,可以將dateDisable變量值更改為False ,但是,“添加日期”按鈕不能將變量更改為True 如何讓代碼可以工作? 謝謝。

的HTML

<div ng-controller="addDateControl">
  <a href="#" ng-click="showDate($event)">add one</a>
  <div clss="date-warp" ng-hide="dateDisable">
    <a href="#" vote-select-list>add date</a>
  </div>
</div>

JS

var app = angular.module('GroupApp',[]);
app.controller('addDateControl',
    function ($scope) {
    $scope.dateDisable = true;

    $scope.showDate = function ($event) {
      $event.preventDefault();
      $scope.dateDisable = !$scope.dateDisable;
    };
  })
  .directive('voteSelectList', [ function () {
    return {
      restrict: 'A',
      link: function (scope, iElement, iAttrs) {
        iElement.bind('click', function(event) {
          event.preventDefault();
        });
      }
    };
  }]);

您介意將問題提交給Plunker嗎?

完成此操作后,我們便可以自由地使用代碼。 我從高層看到了兩個錯誤。

  • <div clss="date-warp" ng-hide="dateDisable">您的班級名稱缺少“ a”
  • 在您的指令中,鏈接函數具有3個屬性,對於它們的屬性通常非常嚴格。 您當前正在使用(scope, iElement, iAttrs)應該在哪里(scope, element, attrs)

從高級的角度來看,它們可能什么也不做,但是極有可能是導致錯誤的原因。 有關自定義指令屬性的更多信息,請在此處查看AngularJS文檔

希望有幫助! 祝好運!

您應該能夠在指令中執行某些操作,例如

scope.$emit("addedDate");
scope.$apply();

在您的點擊綁定中以及在控制器中執行以下操作

$scope.$on("addedDate", function(){
  $scope.dateDisable = true;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM