2014-06-20 15 views
17

का उपयोग कर क्लिक पर बटन के टेक्स्ट को बदलें बटन के क्लिक पर मैं बटन का टेक्स्ट कैसे बदल सकता हूं।कोणीय जेएस

यहां मैंने कोशिश की है।

HTML:

<button ng-click="toggle = !toggle">Toggle!</button> 
<div class="box on" ng-show="toggle" ng-animate="'box'">On</div> 

जे एस:

function MainController($scope) { 
    $scope.toggle = true; 
} 

उत्तर

22

मुझे लगता है, toggle की एक घड़ी का उपयोग कर इसे

<button ng-click="toggle = !toggle">{{toggleText}}</button> 
<div class="box on" ng-show="toggle" ng-animate="'box'">On</div> 
तो

app.controller('AppController', function ($scope) { 
    $scope.toggle = true; 

    $scope.$watch('toggle', function(){ 
     $scope.toggleText = $scope.toggle ? 'Toggle!' : 'some text'; 
    }) 
}) 
में क्या करना चाहिए

डेमो:

<button ng-click="toggle = !toggle"> 
    <span ng-show="toggle">Toggle to Off</span> 
    <span ng-hide="toggle">Toggle to On</span> 
</button> 
<div class="box on" ng-show="toggle" ng-animate="'box'">On</div> 
24

या, सभी सामग्री को अपने HTML में, बल्कि नियंत्रक में बटन पाठ को परिभाषित करने से, अगर आप चाहें रख उनके प्रदर्शन का। यही कारण है कि इस के रूप में सरल है:

app.controller('AppController', function ($scope) { 
    $scope.toggle = true; 
}) 

<button ng-click="toggle = !toggle">{{toggle && 'Toggle!' || 'some text'}}</button> 
+6

मेरी राय में, यह संभवत: इसे करने का अधिक "सही" तरीका है, क्योंकि टेक्स्ट परिवर्तन पूरी तरह से उपयोगकर्ता इंटरफ़ेस से संबंधित चीज है। किसी भी कड़ाई से यूआई से संबंधित कोड को अपने कंट्रोलर के बाहर, विशेष रूप से टेम्पलेट में या निर्देश में रखने का सबसे अच्छा अभ्यास है। –

9

मैं न तो घड़ी है और न ही एनजी शो क्योंकि प्रयोग करेंगे: Fiddle

+0

धन्यवाद @akcasoy। यह सरल और सबसे अच्छा समाधान है। – Kishori

0

यहाँ मेरी समाधान समर्थन अनुवाद दिया गया है:

HTML:

<span class="togglebutton"> 
    <label> 
     <input type="checkbox" checked="{{myApp.enabled}}" 
       ng-model="myApp.enabled" ng-click="toggleEnabled()"> 
     <span translate="{{myApp.enableCaption}}">Is Enabled?</span> 
    </label> 
</span> 

जे एस - नियंत्रक:

$scope.toggleEnabled = function() { 
    $scope.myApp.enableCaption = $scope.myApp.enabled ? 'global.enabled' : 'global.disabled'; 
}; 

जहां global.enabled और global.disabled को देखें i18n JSON अनुवाद। आपको जेएस में enableCaption को प्रारंभ करने की भी आवश्यकता है, जहां आप एक खाली वस्तु बनाते हैं।