2014-04-11 21 views
5

कृपया नीचे आंशिक दृश्य और उसके नीचे नियंत्रक पर विचार करें। दिनांक पिकर तत्वों पर एनजी-चेंज इवेंट पर फ़ंक्शन को उस मान को बदल दिया जाता है जो दूसरे के ऊपरी या निचले सीमा को परिभाषित करता है।

मुझे पता है कि मुझे अद्यतन मूल्य देखने के लिए केंडो डेटपिकर को फिर से निकालना होगा और मुझे इसे निर्देश में करना चाहिए लेकिन मेरा सीमित अनुभव मुझे अटक गया है। मुझे $ स्कोप माना गया। $ लागू() को दायरे में अपडेट करने के बाद कहा जाता है लेकिन यह चाल नहीं करता है।

मुझे इसे कोणीय फैशन में कैसे करना चाहिए?

// Home View 
<button id="date-button" type="button" kendo-button ng-click="showModal();"> 
    Variance Analysis 
    <br /> 
</button> 
<div id="spinner" class="loading" style="display:none;"> 
    <div class="loading-dot"></div> 
    <div class="loading-dot"></div> 
    <div class="loading-dot"></div> 
    <div class="loading-dot"></div> 
</div> 

<div class="row"> 
    <br /> 
    <br /> 
    <br /> 
    <div class="col-lg-6 col-lg-offset-3"> 
     <h1>Select Two Months to Compare</h1> 
     <br /> 
     <br /> 
     <br /> 
     <div class="col-lg-6"> 
      <input kendo-date-picker ng-model="dates.fromDate" k-ng-model="dates.actualFromDate" k-options="datePicker1Options();" ng-change="setMaxDate();" /> 
     </div> 
     <div class="col-lg-6"> 
      <input kendo-date-picker ng-model="dates.untilDate" k-ng-model="dates.actualUntilDate" k-options="datePicker2Options();" ng-change="setMinDate();" /> 
     </div> 
     <div class="row"> 
      <br /> 
      <br /> 
      <br /> 
      <div class="col-lg-2 col-lg-offset-4"> 
       <button kendo-button ng-click="go();" style="width:100%;">Go</button> 
      </div> 
     </div> 
    </div> 
</div> 




// Home Controller 
app.controller('HomeCtrl', ['$scope', '$http', '$location', 'data', function ($scope, $http, $location, data) { 
    $scope.dates = {}; 
    $scope.dates.untilDate; 
    $scope.dates.fromDate; 
    $scope.dates.actualUntilDate; 
    $scope.dates.actualFromDate; 

    $scope.minDate = new kendo.data.ObservableObject({ 
     date: new Date(1970) 
    }); 

    $scope.maxDate = new kendo.data.ObservableObject({ 
     date: new Date() 
    }); 

    $scope.setMaxDate = function() { 
     var date = new Date($scope.dates.actualFromDate); 
     date.setMonth(date.getMonth() + 1); 
     $scope.maxDate.date = date; 
     // $scope.$apply(); 
    } 

    $scope.setMinDate = function() { 
     var date = new Date($scope.dates.actualUntilDate); 
     date.setMonth(date.getMonth() - 1); 
     $scope.minDate.date = date; 
     // $scope.$apply(); 
    } 


    $scope.datePicker1Options = function() { 
     return { 
      animation: { 
       close: { 
        effects: "fadeOut zoom:out", 
        duration: 300 
       }, 
       open: { 
        effects: "fadeIn zoom:in", 
        duration: 300 
       } 
      }, 
      format: "MMM yyyy", 
      start: "year", 
      depth: "year", 
      min: $scope.minDate.date 
     } 
    } 


    $scope.datePicker2Options = function() { 
     return { 
      animation: { 
       close: { 
        effects: "fadeOut zoom:out", 
        duration: 300 
       }, 
       open: { 
        effects: "fadeIn zoom:in", 
        duration: 300 
       } 
      }, 
      format: "MMM yyyy", 
      start: "year", 
      depth: "year", 
      max: $scope.maxDate.date 
     } 
    } 

    $scope.go = function() { 
     data.fetch($scope.dates.fromDate, $scope.dates.untilDate, $http, $location); 
    } 


}]); 

उत्तर

3

स्रोत कोड को देखते हुए, k-rebind आप के बाद के बाद से कोणीय केन्डो दो तरह बाइंडिंग का उपयोग नहीं करता है क्या कर रहे हैं है, लेकिन k-rebind अति गाड़ी लगता है और रखा एक अनंत पचाने लूप में किसी भी परीक्षण मैंने किया था भेजने । लेखक के साथ इसे लेने के लिए सबसे अच्छा है।

इसके अलावा, मुझे लगता है कि आपके दो दिनांक पिकर्स एक तर्क बग है। मैं FromDate संभालने कर रहा हूँ वास्तव में MinDate स्थापित करना चाहिए जो DatePicker2

+0

पहला पिकर दूसरे के पहले महीने से पहले एक महीने का चयन करने से प्रतिबंधित करता है। दूसरे दूसरे के चुने हुए महीने के बाद एक महीने का चयन करने से पहले प्रतिबंधित करता है। वैसे भी तर्क है। क्या आप डेट-रिकर्स को नए न्यूनतम/अधिकतम मानों के साथ दोबारा बनाने के लिए के-रीबिंड का उपयोग करने का एक उदाहरण दिखाएंगे। मुझे इस बात पर कोई सभ्य दस्तावेज नहीं मिल रहा है। चीयर्स। – hally9k

+0

मुझे यकीन नहीं है कि कोई डॉको है, इन टिप्पणियों को देखें: https://github.com/kendo-labs/angular-kendo/issues/10#issuecomment-20073069 और https://github.com/kendo-labs/कोणीय-केंडो/मुद्दों/33 # अंकन -20264067 – morloch

+0

अल्ट्रा छोटी गाड़ी के लिए +1 ... – marapet

0

मैं या तो $ गुंजाइश का उपयोग कर एक केंडो ग्रिड ताज़ा करने के लिए कोशिश कर रहा है इसी तरह की समस्याएं आ रही हैं की min विकल्प अद्यतन करेगा। $ लागू() या k-rebind विशेषता एचटीएमएल में पूर्व "डाइजेस्ट पहले से ही प्रगति पर है" त्रुटि लौट रहा है, और बाद में किसी भी प्रकार की स्मृति समस्या के साथ क्रोम को मार रहा है।

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