2016-04-04 53 views
0

工作我已經定義像這樣的指令:Udating父對象不是在所有

myApp.directive('someDirective', function() { 
return { 
    restrict: 'A', 
    scope: { 

     disableButton: '=', 
    }, 
    templateUrl: 'sometemplate.html', 
    controller: 'SomeDirectiveController' 
} 

});

的指令控制器如下所示:

mLoan.controller('GiversDirectiveController', function (
$scope, 
) { 

$scope.checkGiversAmount = function() { 
    var giversCurrentTotalValue = $scope.stocksTotalAmount - $scope.giversCurrentAmount; 

} 

這是指令視圖

<div class="row"> 
    <div class="col-lg-2"> 
     <label for="customer">Wybierz klienta</label> 
     <select id="customer" 
       name="customer" 
       class="form-control" 
       ng-model="selectedCustomerId" 
       ng-options="customer.Id as customer.Name for customer in customers" 
       ng-change="getGiversFunds(selectedCustomerId)" 
       required=""></select> 
    </div> 
    <div class="col-lg-2" ng-show="customerFunds.length > 0"> 
     <label for="customerFunds">Wybierz fundusz</label> 
     <select id="customerFunds" 
       name="customerFunds" 
       class="form-control" 
       ng-model="selectedFundId" 
       ng-options="customerFund.Id as customerFund.Name for customerFund in customerFunds" 
       ng-blur="updateGiverFund(selectedCustomerId, selectedFundId)" 
       ng-required="customerFunds.length > 0"></select> 
    </div> 
    <div class="col-lg-2"> 
     <label for="giversCurrentAmount">Ilość</label> 
     <input type="number" min="1" 
       max="{{giversCurrentAmount}}" 
       id="giversCurrentAmount" 
       name="giversCurrentAmount" 
       class="form-control" 
       ng-model="giversCurrentAmount" 
       ng-change="checkGiversAmount(selectedFundId)" 
       ng-blur="updateGiverStockAmount(selectedCustomerId, giversCurrentAmount)" 
       required /> 
    </div> 
    <div class="col-lg-2"> 
     <label for="commission">FEE%</label> 
     <input type="number" 
       min="1" 
       id="commission" 
       name="commission" 
       class="form-control" 
       ng-model="commission" 
       ng-blur="updateGiverCommission(selectedCustomerId, commission)" 
       required /> 
    </div> 
    <div class="col-lg-4"> 
     <label for="minimalCommission">FEE Min</label> 
     <input type="number" 
       min="1" 
       id="minimalCommission" 
       name="minimalCommission" 
       class="form-control" 
       ng-model="minimalCommission" 
       ng-blur="updateGiverMinimalCommission(selectedCustomerId, minimalCommission)" 
       required /> 
    </div> 
</div> 

在哪裏我使用的指令與按鈕父視圖:

<div ng-repeat="giver in givers"> 
        <div givers-directive givers="givers" 
         givers-current-amount="giversCurrentAmount" 
         disable-giver-side-add="parent" 
         stocks-total-amount="stocksTotalAmount"> 
        </div> 
       </div> 
       <div class="row"> 
        <div class="col-lg-12 margin-top-10px"> 
         <button id="addGiverSide" 
           name="saveLoan" 
           class="btn btn-primary" 
           ng-click="addGiverSide(AddLoansForm)" 
           ng-disabled="disableButton"> 
          Dodaj 
         </button> 
        </div> 
       </div> 

現在我的問題和問題同時我是如何更新disableButton fr om父模型。在你說這是重複的之前,我已經遇到了一個解決方案,主要是這個:How to access parent scope from within a custom directive *with own scope* in AngularJS?和那個:What are the nuances of scope prototypal/prototypical inheritance in AngularJS?,但似乎沒有任何幫助。什麼是straneg(或不)我不能使用$ parent來達到目的。我必須經過:$ scope。$ parent。$ parent path,然後它得到更新。除此之外,它看起來醜陋和奇怪,當我試圖從父視圖更新這個變量時,它不起作用。總結一個效果正在工作,另一個不是。改變之後是另一種方式。我試圖將禁用按鈕封裝到一個對象中,並嘗試進行更改,但這也不起作用。或者,也許我做錯了。請幫助我,因爲我的想法已經枯竭。我究竟做錯了什麼?

UPDATE

我加入指令鑑於各地展示什麼,我想在這裏實現的概念。這是下降,我希望他們是獨立的。因爲如果沒有分隔(或隔離)範圍的指令,則兩個下拉列表將通過更改另一個下拉列表來填充。我想獨立地改變它們。我已經成功實現了整個孤立的範圍。但現在我似乎無法得到禁用按鈕的工作。

回答

0

通過在指令中定義一個範圍,可以將指令鎖定在父範圍之外。如果您想使用父範圍,則應將範圍設置爲true。

你可以閱讀更多關於這個問題在這裏:http://www.sitepoint.com/practical-guide-angularjs-directives/

編輯:實例

myApp.directive('someDirective', function() { 
return { 
    restrict: 'A', 
    scope: true, 
    templateUrl: 'sometemplate.html', 
    controller: 'SomeDirectiveController' 
} 
+0

我已經試過了,但是這並沒有也有幫助。我發現我也有一個ng-repeat指令。這也是它的範圍,這就是爲什麼我可能需要通過$ scope。$ parent。$ parent。第一個$父母是ng-repeat級別,下一個是我期待的那個,我已經將ng重複移到了direvtive視圖,我會看到我在這樣做時會提出什麼。 –

相關問題