如何在javascript中填充Angularjs $ scope变量?

bar*_*oma 5 javascript angularjs

mapApp.controller("myController", function ($scope,$http) {
            $scope.namePlaceHolder= "Name";
            $scope.name = "";
};
Run Code Online (Sandbox Code Playgroud)

我将范围变量绑定到html输入,如下所示.

<input id="foo" type="text" placeholder="{{namePlaceHolder}}" ng-model="name" value="{{name}}"/>
Run Code Online (Sandbox Code Playgroud)

如果用户在文本框中键入内容,则$ scope.name属性会更改.但是当我使用javascript更改它时,$ scope.name数据不会更改.

on(document.getElementById("button"), "click", function (e) {
        document.getElementById("foo").value = "ascd...";
})
Run Code Online (Sandbox Code Playgroud)

此代码不会填充$ scope.name数据.

MeL*_*ght 11

从外部元素访问范围:

on(document.getElementById("button"), "click", function (e) {
            var scope = angular.element(document.getElementById("foo")).scope();
            scope.name = "hello, World!";
    })
Run Code Online (Sandbox Code Playgroud)

  • `var scope = angular.element("#foo").scope();`是一个较短的表示法 (2认同)

小智 6

从外部元素访问和应用范围:

JS:

on(document.getElementById("button"), "click", function (e) {
            var scope = angular.element(document.getElementById("foo")).scope();
            scope.name = "hello, World!";
            scope.$apply();
    })
Run Code Online (Sandbox Code Playgroud)