如何使用范围变量将值从控制器获取到指令中
Posted
技术标签:
【中文标题】如何使用范围变量将值从控制器获取到指令中【英文标题】:how to get the value into directive from controller using scope variable 【发布时间】:2014-09-01 16:43:13 【问题描述】:我在 app.js 中定义了一个控制器和指令,并在 index.html 中使用它。
app.js
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope)
$scope.name = 'World';
);
app.directive('search', function()
return
scope:
display: '='
,
restrict: 'AE',
replace: true,
link: function(scope, elm, attrs)
alert(display);
;
);
index.html
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js" data-semver="1.2.17"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<search display="name"></search>
</body>
</html>
当我在指令中给出 alert(display) 时,它应该打印“world”。
【问题讨论】:
【参考方案1】:应该是scope.display
:
link: function(scope, elm, attrs)
alert(scope.display);
【讨论】:
我建议你创建一个 plunker 来演示这个问题 错误是:错误:[$compile:tpload] 无法加载模板:template.html。如果您加载 Angular 的非缩小版本,则错误消息更有意义。以上是关于如何使用范围变量将值从控制器获取到指令中的主要内容,如果未能解决你的问题,请参考以下文章
如何将值从 tableview 传递到 collectionview