我正在使用AngularJS和TypeScript,現在我需要將視圖中的參數傳遞給控制器。這就是我如何試圖做到這一點(通過NG-INIT)的方式:Angular + TypeScript - 從視圖傳遞參數到控制器
<div class="col-md-9" ng-controller="MapIZSController" ng-init="init('IZS')">
"IZS"
值應該傳遞給控制器。控制器看起來像:
export class MapIZSController
{
static $inject = ["$scope", "leafletData"];
private m_scope: IMapIZSScope;
private m_leafletData;
constructor($scope: IMapIZSScope, leafletData)
{
// the first way I tried
$scope.init = function (type) {
console.log("type is: " + type);
};
// the second way I tried
$scope.init = this.init;
}
public init = (init: any) => {
console.log("init is: " + init)
}
我的問題是,我想獲得一個類型,但
- 第一種方式,不會被調用
- 第二了。
你能給我一些建議嗎?
這個*可能*工作,但這不是'[ng-init']的預期用途(https://docs.angularjs.org/api/ng/directive/ngInit)。 「這個指令可能會被濫用,爲你的模板添加不必要的邏輯,只有少數'ngInit'正確的使用,例如爲'ngRepeat'的別名特殊屬性...'。 'ng-init'是一個指令,具有優先級,這意味着它可能不會按照您期望的順序執行,並且您可能依賴尚未提供的數據。 – Claies