2016-01-13 8 views
6

मैं कुछ डेटा $ mdDialog पर पास करना चाहता हूं। असल में मैंने अलग फाइल में नियंत्रक को टॉव किया है। यहां मेरा नियंत्रक कोड

function openDialog(id) { 
     $mdDialog.show({ 
      locals:{ 
       profileId: id 
      }, 
      controller: ['$scope', 'profileId', function($scope, profileId) { 
       var self = this; 
       self.profileId= profileId; 
      }], 
      controllerAs: 'profileCtrl', 
      templateUrl: 'view/profile.html', 
      parent: angular.element(document.body), 
      clickOutsideToClose:true 

     }) 
    } 

मुझे टीपी पास प्रोफ़ाइल चाहिए प्रोफ़ाइल के लिए नियंत्रक और प्रोफ़ाइल डेटा प्रदर्शित करें। प्रोफाइल में नियंत्रक मैं इस

function profileController($scope,..., profileId){ 

} 

के रूप में डेटा प्राप्त लेकिन सांत्वना

Error: [$injector:unpr] Unknown provider: profileIdProvider <- profileId<- ProfileController 

क्या इस त्रुटि है और यह कैसे तय करने के लिए में इस त्रुटि apear?

उत्तर

6

मैं प्रोफ़ाइल टेम्पलेट में ng-controller="ProfileController as profileController" जोड़ा के लिए पारित किया है और यह एक की वजह से था त्रुटि। इसे हटाकर मेरी समस्या हल हो गई।

0

मुझे लगता है कि आप इस कार्य करना होगा:

controller: ['$scope', function($scope) { 
       var self = this; 
       self.profileId= $scope.profileId; 
      }] 

आपका profileId दायरे में है।

आप डेटा पारित करने के लिए स्थानीय लोगों का उपयोग कर सकते हैं: आधिकारिक वेबसाइट से उदाहरण:

function showDialog($event) { 
     var parentEl = angular.element(document.body); 
     $mdDialog.show({ 
     parent: parentEl, 
     targetEvent: $event, 
     template: 
      '<md-dialog aria-label="List dialog">' + 
      ' <md-dialog-content>'+ 
      ' <md-list>'+ 
      '  <md-list-item ng-repeat="item in items">'+ 
      '  <p>Number {{item}}</p>' + 
      '  '+ 
      ' </md-list-item></md-list>'+ 
      ' </md-dialog-content>' + 
      ' <md-dialog-actions>' + 
      ' <md-button ng-click="closeDialog()" class="md-primary">' + 
      '  Close Dialog' + 
      ' </md-button>' + 
      ' </md-dialog-actions>' + 
      '</md-dialog>', 
     locals: { 
      items: $scope.items 
     }, 
     controller: DialogController 
     }); 

जहां आइटम एक डेटा संवाद

+0

संवाद टेम्पलेट में इस्तेमाल किया जा सकता वास्तव में प्रश्न के लिए जवाब नहीं है, मैं कोड, 1 पेज में सभी कोड डाल का पालन करें और रखरखाव के लिए कड़ी मेहनत करने के लिए अच्छा नहीं अलग रखना चाहते हैं। –

0

तेज मार्ग ले लो!

openDialog = (items) => 
    $mdDialog.show({ 
     templateUrl: 'view/profile.html', 
     controller: $scope => $scope.items = items 
    }) 

$scope.items अब ☺

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