簡體   English   中英

從外部調用控制器功能

[英]Call controller function from outside

我需要從外部訪問(調用和/或修改)控制器的范圍。
按照這個答案,我設法訪問了范圍,但是數據綁定沒有啟動...

以這個為例( JSFiddle )。

angular.module("App", []).controller("Test", function($scope)
{
    $scope.list = ["added on initialization"];

    $scope.add = function(item)
    {
        $scope.list.push(item);
    };
});

var addFromOutside = function()
{
    angular
        .element(document.getElementById("TestController"))
        .scope()
        .add('added from outside');
};
<div ng-app="App" ng-controller="Test" id="TestController">
    <ul>
        <li ng-repeat="item in list track by $index">
            {{item}}
        </li>
    </ul>

    <button ng-click="add('added from inside')">Add from inside</button>
</div>

<button onclick="addFromOutside()">Add from outside</button>

如果單擊“ 從內部添加 ”按鈕,它將按預期工作。
但是,如果您單擊“ 從外部添加 ”按鈕,則沒有任何反應,除非您單擊“ 從內部添加 ”按鈕...

反正有這樣做並且數據綁定有效嗎?

你忘了加

scope.$apply()

http://jsfiddle.net/o2b0bdbr/您不在角度摘要循環之內,因此您需要讓他知道他的示波器上發生了某些事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM