更新:這是一個重複的Call Angular JS from legacy codeangular.js:如何從尚未「角度化」的應用程序部分更新模型?
我正在實現一個新的功能在現有的應用程序使用角度。我現在無法重寫整個應用程序,所以這意味着角度模型可能需要從應用程序的其餘部分進行更新,該應用程序直接操縱dom。
如何更新模型而不會偏離角度固有的設計模式太多(或根本)?
這是一個簡化的工作示例,但它包含控制器中的事件處理程序。也許有更好的辦法。
注意:該按鈕是虛構的。應用程序中沒有這樣的按鈕。它的簡化。
http://plnkr.co/edit/XoD6hPKs2ou3oqpuVhnQ?p=preview
JS:
var testApp = angular.module('testApp', []);
testApp.controller('audioController', function ($scope) {
$scope.settings = {audiostop: "00:30"};
$('button').click(function(){
$scope.loadSettings({audiostop: '23'});
});
$scope.loadSettings = function (data) {
$scope.$apply(function(){
$scope.settings = { audiostop: data.audiostop};
});
}
});
另一個選擇是聲明函數的外部對象控制器的內部:
NAMESPACE.someobject.loadSettings = function (data) {
$scope.$apply(function(){
$scope.settings = { audiostop: data.audiostop};
});
}
UPDATE:看來,我需要的是按照此處所述執行依賴關係注入: http://docs.angularjs.org/guide/di
可能重複的[從遺留代碼調用Angular JS](http://stackoverflow.com/questions/10490570/call-angular-js-from-legacy-code) – CodeToad