【发布时间】:2013-05-28 15:51:14
【问题描述】:
简单问题:如何在 html 中设置范围值,以供控制器读取?
var app = angular.module('app', []);
app.controller('MyController', function($scope) {
console.log($scope.myVar);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app'>
<div ng-controller="MyController" app-myVar="test">
{{myVar}}
</div>
</div>
JSFiddle:http://jsfiddle.net/ncapito/YdQcX/
【问题讨论】:
-
您最好创建一个指令来处理这个问题。指令将封装:参数、特定于该指令的控制器以及“myMap”标记的模板。
-
这实际上是我所做的......只是在指令控制器中访问 $scope.myVar 时遇到了一些问题。为什么我必须在控制器中使用手表来访问范围变量?
-
也许你可以发布你的指令?在docs.angularjs.org/guide/directive 此处查看“了解嵌入和作用域”您可能需要作用域:{ myVar : '=' },当您调用它时您会说
my-var="foo"。注意连字符与驼峰式的使用。注意:foo这里是已评估,如果您不希望在范围定义中使用“@”来访问属性的值。 -
@Nix 你能解释一下为什么需要在视图中初始化值,而不是在你的控制器中?我假设您已经知道这不是初始化值的传统方式(否则您不会问),如果其他人更了解您的用例,他们将能够为您提供更好的答案。
-
@SeantheBean 我年轻又愚蠢... ;) 我不知道为什么我需要这样做。我可能正试图破解某些东西。