这个问题是Angularjs How to pass parameter back to controller from directive with ng-click的早期延期,其中字符串可以传递给Angular控制器,但模板中定义的变量不是。
在这个JSFiddle中,'string'被传递给控制器,var foo是'undefined'。
的index.html:
<div ng-app>
<div ng-controller="YourController">
<button type="button" ng-click="showString(foo)">One</button>
<button type="button" ng-click="showString('Two')">Two</button>
<p>Result: {{string}}</p>
</div>
</div>
<script>
var foo = "bar";
</script>
main.js:
function YourController($scope) {
$scope.string='';
$scope.showString = function (provider) {
$scope.string= provider;
}
}
(这里的第一个Stack Overflow帖子......对我来说很容易;)
答案 0 :(得分:0)
找到解决方案,这是updated JSFiddle。
1)在index.html
,我改变了
<script>
var foo = "bar";
</script>
到
<script>
window.foo = "bar";
</script>
2)在main.js
中,我添加了
$scope.foo = window.foo;
如果有更好的解决方案,请随时发表评论。