1

我在一个项目中使用 AngularJS、Spring MVC 和 JSP。我需要做这种事情:

<div class="hide" ng-app ng-controller="myCtrl">
    <span ng-model="myValue">${valueToRender}</span>
</div>

渲染后,假设我得到了这个 HTML:

<div class="hide" ng-app ng-controller="myCtrl">
    <span ng-model="myValue">42</span>
</div>

我想在 Angular 控制器中访问 的值myValue,但浏览器说这myValue是未定义的。

这是javascript:

function myCtrl($scope) {
    console.info($scope.myValue); //Browser tells me that is undefined
}

谢谢您的帮助。

4

1 回答 1

2

ng-model不适合这个,除了它只适用于输入元素(不是<span>s)。我建议使用指令:

目标标记:

<div class="hide" ng-app ng-controller="myCtrl">
    <span server-data="myValue">${valueToRender}</span>
</div>

指示:

angular.module("...").directive("serverData", function() {
    return {
        scope: false,
        link: function(scope, element, attrs) {
            scope[attrs.serverData] = element.text();
        }
    };
});

这个带有上面 HTML 模板的指令会将值"42"(字符串)放在范围内,在 name 下myValue。(此代码未经测试只是为了演示一般想法。)

但是,您确定这是实现客户端-服务器通信的方式吗?

于 2013-09-16T16:35:39.900 回答