從我的理解中,工廠是對Angular提供者的抽象,它允許您使用較少的代碼行來返回數據。但是,提供商提供了更多的靈活性,因此您可以更好地定義服務的功能。我仍然很困惑如何從提供者調用一個簡單的函數。每個人似乎都以不同的方式做他們,我不能讓我的工作:角提供者中的Setter函數
myApp.provider('myProvider', function() {
myVar = true;
$get: function() {
return {
myVar: myVar,
}
},
toggleFalse = function() {
myVar = false;
},
})
myApp.controller('myController', function($scope, myProvider) {
myProvider.toggleFalse();
});
這似乎並不工作 - 我無法理解服務一般。它說toggleFalse
沒有定義。如何正確定義可通過控制器控制的Angular服務的setter函數?
當你說它不起作用時,你究竟是什麼意思? –
我不明白你到底想要做什麼。您正在提供程序中創建一個名爲「myVar」的本地函數範圍變量。注入提供程序時,您正在爲返回的對象創建單獨的'myVar'屬性。您是否想要提供商的所有實例共享一個全球價值,還是您希望每個價值都有自己的價值? –
我期待有一個全球共享的價值。我不想設置全局變量,因爲我認爲可能有辦法避免這種情況。 – user3221399