如何将模板定义的变量传递给角度控制器

时间:2017-03-16 03:28:17

标签: angularjs angularjs-scope angularjs-ng-click

这个问题是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帖子......对我来说很容易;)

1 个答案:

答案 0 :(得分:0)

找到解决方案,这是updated JSFiddle

1)在index.html,我改变了

<script>
  var foo = "bar";
</script>

<script>
  window.foo = "bar";
</script>

2)在main.js中,我添加了

$scope.foo = window.foo;

如果有更好的解决方案,请随时发表评论。