2015-09-05 107 views
0

是否有可能訪問注入的外部控制器上的依賴關係?嘗試訪問控制器外部的注入依賴關係

function clienteCreateController(ClientesService, recuperarEndereco) { 
 
    var vm = this; 
 

 
    vm.pesquisarCep = pesquisarCep; 
 
} 
 

 

 
function pesquisarCep(cep) { 
 
    recuperarEndereco.find(cep) 
 
    .success(function(data) { 
 
     parseEndereco(data).bind(this); 
 
    }) 
 
    .error(function(err) { 
 
     // showAlertDanger(vm, 'Cep inválido.'); 
 
     console.log(err); 
 
    }); 
 
}

我打電話從一個按鈕點擊方法。

感謝

+0

你能僅在你的控制器體內定義vm.pesquisarCep嗎? –

+0

我試圖在外面聲明它,因爲它在另一個地方使用。 – wribeiro

回答

0

我不認爲你可以在外面的功能pesquisarCep訪問參數recuperarEndereco。因爲在函數pesquisarCep的執行上下文中,變量是recuperarEndereco根本沒有聲明。與此JSFiddle相同:http://jsfiddle.net/dLhmozf3/。它報告錯誤:

function outsite() { 
    console.log('param: ' + param); 
} 

var f = function (param) { 
    var me = outsite; 
    me(); 
}; 

f(); 

您需要定義像外面功能:function pesquisarCep(cep, recuperarEndereco) { ...。並稱之爲pesquisarCep(cep, recuperarEndereco)

+0

感謝您的回答。我認爲這是一些關於閉包的JavaScript魔法,或者是讓我訪問在控制器函數中聲明的變量的東西。 – wribeiro