AngularJS 應用程式通常需要在控制器之間傳遞變數以促進通訊和資料共用。但是,從不同的控制器存取變數可能會帶來挑戰。
在理想情況下,您可能會嘗試直接從另一個控制器存取變數。但是,除非控制器透過分層 $scope 繼承模型關聯,否則這種方法會失敗。
更有效的解決方案是利用在所有控制器之間共享的服務。透過向您的應用程式註冊服務並將其註入所需的控制器,您可以存取其屬性和方法來交換資料。
範例服務:
angular.module('myApp').service('sharedProperties', function () { var property = 'First'; return { getProperty: function () { return property; }, setProperty: function (value) { property = value; }, }; });
控制器中的用法:
function Ctrl1($scope, sharedProperties) { sharedProperties.setProperty('Updated Value'); } function Ctrl2($scope, sharedProperties) { $scope.prop2 = 'Second'; $scope.both = sharedProperties.getProperty() + $scope.prop2; }
為了確保共享值動態更新UI,請考慮綁定到物件的屬性而不是原始類型。這允許在整個應用程式中維護引用。
範例:
// Replace 'var property = 'First';' with var property = { Property1: 'First' };
以上是如何在 AngularJS 控制器之間有效共享變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!