2014-04-11 44 views
0

我有一個自定義的jquery插件,將隱藏真正的複選框,並顯示一個增強的組件,而不是真正的。Angular.js:複選框沒有被用戶選中,但我需要ng-

此代碼

<label for="local"> 
    <input type="checkbox" ng-model="value" ng-change="filterByCoursePlace('test')" name="local" id="local"><span>Local</span> 
</label> 

插件生成此代碼

<label for="local"> 
    <div class="jcf-class-ng-pristine jcf-class-ng-valid chk-area chk-unchecked chk-focus"><span></span></div> 
    <input type="checkbox" ng-model="value" ng-click="filterByCoursePlace('test')" name="local" id="local" class="ng-pristine ng-valid"><span>Local </span> 
</label> 

大正方形是假的(示出爲(它上的複選框的頂部添加了一個div)用戶)和小廣場是真正的。 真正的複選框將隱藏給用戶。

enter image description here

的問題是:當我點擊了真正的NG-變化工作,但是當我點擊了假的NG-變化雖然真正的被檢查過不起作用。

+0

您是使用實際的jQuery插件還是通過直接標記或指令模仿它的功能? – Brocco

+0

爲什麼你需要隱藏真正的複選框並顯示增強的組件,而不是真正的組件。 –

+0

@NidhishKrishnan這是客戶的要求 – zizoujab

回答

0

我最終顯示在假一頂真正的複選框,並使其與無形的CSS(不透明度= 0)

這並不是完美的解決方案,但它的工作。

1

您可以更改jQuery插件多少錢? 生成的代碼有一個ng-click="filterByCoursePlace('test'),這就是爲什麼如果你點擊真實的作品。 做你想做什麼,最快的方法是刪除所有ng-change/ng-click附加在你的控制器watch

$scope.$watch('value', function(newVal, oldVal) { 
    filterByCoursePlace('test') 
}); 

或者,如果你可以改變插件如何生成的代碼,你可以在ng-click添加到假冒複選框而不是真正的。 無論如何,如果你想要觸發filterByCoursePlacevalue由另一個功能(如'resetFilters'按鈕)更改,我會以$scope.$watch方式去。

+0

我試過這種方法($ watch方法),同樣的事情,如果我點擊真正的複選框'ng-modal'變量獲取更新,如果我點擊假的沒有任何東西 – zizoujab

+0

沒有代碼,這有點困難;無論如何,我想這是如何在jQuery插件已被集成在angularjs中的問題。有很多關於如何用簡單指令來做到這一點的教程(如:http://amitgharat.wordpress.com/2013/02/03/an-approach-to-use-jquery-plugins-with-angularjs/) 。 – Polmonite

+0

感謝您的鏈接:)感謝您的努力幫助 – zizoujab

相關問題