2016-01-20 9 views
5

पर काम नहीं करता है मैं अंगुलरजेएस में नया हूं और वर्तमान में निम्नलिखित समस्या से जूझ रहा हूं।एनजी-चेंज इनपुट

आप here in my plnkr देख सकते हैं मैं $scope.myDate.value का मूल्य बदल सकते हैं।

समस्या अब है कि मैं जब <input> करने के लिए ng-change="barFunc()" जोड़ने एक समारोह में इस क्षेत्र के साथ काम नहीं कर सकता है।

ng-change या ng-watch के साथ काम करना कैसे संभव है? कोई अच्छा होगा अगर कोई मेरा प्लानर काम कर सके।

<!DOCTYPE html> 
 
<html ng-app="demo"> 
 
<head> 
 
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"> 
 
    <link href="//rawgithub.com/g00fy-/angular-datepicker/1.0.3/dist/index.css" rel="stylesheet"> 
 
    <style> 
 
     input {margin: 45px 0 15px 0;} 
 
     pre{padding: 15px; text-align: left;} 
 
    </style> 
 
</head> 
 
<body> 
 
<div class="container"> 
 
    <div class="row"> 
 
     <div class="col-md-4"> 
 
      <div ng-controller="foo"> 
 
       <input type="datetime" class="form-control" date-time ng-model="myDate.value" 
 
        ng-change="barFunc()" format="yyyy-MM-dd hh:mm:ss" placeholder="Select datetime"> 
 
       <pre>myDate: {{myDate.value}}</pre> 
 
       <pre>myDate + " abc": {{ custom.value }}</pre> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div> 
 

 
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<script src="//code.angularjs.org/1.4.8/angular.js"></script> 
 
<script src="//rawgithub.com/g00fy-/angular-datepicker/1.0.3/dist/index.js"></script> 
 
<script> 
 
angular.module('demo', ['datePicker']).controller('foo',['$scope', function($scope){ 
 
    $scope.myDate = { 
 
     value: '' 
 
     }; 
 
     
 
    $scope.barFunc = function() { 
 
     $scope.custom.value = $scope.myDate.value + " abc"; 
 
    }; 
 
}]); 
 
</script> 
 
</body> 
 
</html>

उत्तर

2

आप से पहले $scope.custom को परिभाषित करने के लिए है आप ऐसा कर सकते हैं $scope.custom.value

+0

हाँ! काम देखें [plnkr] (http://plnkr.co/edit/hKohYQSC5SG7ZF33qz45?p=preview)। – herrh

2

मैं $ का प्रयोग करेंगे इस मामले में देखने के लिए:

अपने नियंत्रक में

:

$scope.custom = { 
    value : '' 
}; 

$scope.$watch('myDate.value', function() { 
    $scope.barFunc(); 
}); 

$scope.barFunc = function() { 
    $scope.custom.value = $scope.myDate.value + " abc"; 
}; 

या plunkr में

+0

इस एनजी-घड़ी उदाहरण के लिए धन्यवाद;) – herrh

2

के लिए उपयोग आप इस प्रकार का द्रष्टा सेट कर सकते हैं:

$scope.$watch('myDate', function(oldValue, newValue) { 
$scope.barFunc(newValue); 

});

लेकिन आप भी अपने कस्टम वस्तु को परिभाषित करने की आवश्यकता होगी:

$scope.custom = { 
    value: '' 
    }; 

और यह काम करना चाहिए। मुझे ऐसा नहीं लगता कि यह सबसे अच्छा समाधान है - मुझे आम तौर पर लगता है कि अगर मैं वॉचर्स सेट कर रहा हूं क्योंकि मुझे समझ में नहीं आता कि कुछ क्यों उम्मीद नहीं कर रहा है तो यह समझना बेहतर होगा कि यह क्यों काम नहीं कर रहा है। मुझे वह वही मिलता है जो आप करने की कोशिश कर रहे हैं, और केवल यह कुछ ऐसी चीज के रूप में पेश कर रहा हूं जो आपकी समस्या को जल्दी से हल करेगी यदि आपको यही चाहिए।

+0

यदि यह उपरोक्त मेरे उत्तर में स्पष्ट नहीं है - मुझे नहीं पता कि एनजी-चेंज यहां क्यों काम नहीं करता है, यहां तक ​​कि आप अपनी कस्टम ऑब्जेक्ट को परिभाषित करने के बाद भी, और उस समय को समझने का समय नहीं था। यह देखने में बहुत दिलचस्पी होगी कि क्या कोई और इस मुद्दे के उस हिस्से का समाधान प्रदान करता है। –

संबंधित मुद्दे