2016-10-18 12 views
1

我一直在試圖從ui-angular轉換爲angular-strap。我首先轉向使用bs-tooltip而不是tooltip。這部分工作正常。接下來我試圖改變我的模態,在這裏我卡住了!我一直在試圖我的數據注入到控制器如下:爲什麼解決方案不能像我期望的那樣在角帶中起作用?

var myModal = $modal({ 
templateContent: 'addTask.html', 
controller: 'ModalInstanceCtrl2', 
show: false, 
resolve: { 
    function() { 
     return { 
     data: new Promise(function (resolve, reject) { 
      resolve({ 
      task: newTask, 
      getStar: $scope.getStar, 
      setPriority: userCondition.setTaskPriority, 
      finish: function(arg) { 
       console.log(arg); 
      } 
      }); 
     }) 
     }; 
    } 
    } 
}); 

myModal.$promise.then(function() { 
    myModal.show(); 
}); 

在我的控制器ModalInstanceContrl2是:

angular.module('...') 
.controller('ModalInstanceCtrl2', ['$scope', '$modal', 'data', 
    function($scope, $modal, data) { 

     console.log(data); 

     $scope.ok = function() { 
     $modal.close(); 
     }; 

     $scope.cancel = function() { 
     $modal.dismiss('cancel'); 
     }; 

     $scope.data = data; 

    }]); 

然而不管我怎麼好像操縱這個「解析」,我總是看到:

Error: [$injector:unpr] Unknown provider: dataProvider <- data <- ModalInstanceCtrl2 

而我唯一明白的模型來自ui-angular。所以,即使角度帶似乎談論檢查代碼識別「解決」,在目前看不到在版本?

所以我很無知如何實際注入數據到控制器。有人可以幫助嗎?謝謝!!!!

回答

1

我當然希望角度帶的文檔更好! - 但抱怨沒有太大意義,因爲我只使用這個而不是貢獻者!

對於其他人試圖讓這個工作。我到底做的是調試角度,帶代碼,我學會了做:

var myModal = $modal({ 
    templateUrl: 'addTaskOld.html', 
    controller: 'ModalInstanceCtrl2', 
    show: false, 
    resolve: { 
     data: function() { 
     return { 
      task: newTask, 
      getStar: $scope.getStar, 
      setPriority: userCondition.setTaskPriority, 
      finish: function (arg) { 
      console.log(arg); 
      } 
     }; 
     } 
    } 
    }); 

在我的templateUrl:正是在我前面的內容,但與預期引導全模態對話框結構。我這樣做是爲了完全控制模板。

我也沒有打擾從上面的承諾注射,因爲我並不真正需要它,我只加了它,因爲我認爲也許返回一個承諾會幫助它的功能。但它不是必需的。

我還有很多東西需要學習,但至少現在我看到了我期望的模態,我懷疑這會幫助其他人開始使用角度帶。我花了幾個小時試圖讓這個工作成爲可能,而且來自ui-angular的難度更大,因爲這裏的風格是面向屬性的,而不是面向元素的。

它應該從這裏直接前進。

感謝那些看過這個問題的人!

說明我還需要改變modalInstanceCtrl2略有我不是調用正確的方法:

.controller('ModalInstanceCtrl2', ['$scope', '$modal', 'data', 
    function($scope, $modal, data) { 

    $scope.ok = function() { 
    data.finish(data); 
    $scope.$hide(); 
    }; 

    $scope.cancel = function() { 
    $scope.$hide(); 
    }; 

    $scope.data = data; 

}]); 
相關問題