Angular:如何在2个独立的div之间共享(控制器)$ scope?

时间:2015-05-12 12:10:08

标签: angularjs

我有以下HTML:

<div>
  <h1>My App</h1>
  <div id="search" ng-controller="TagsController">
    <input type="text" ng-model="tags_to_search" />
    <button ng-click="search(tags_to_search)" />
  </div>
</div>
<div>
  <div id="results" ng-controller="TagsController">
    going to search {{tags_to_search}}
    <ul>
      <li ng-repeat="tag in searched_tags">
        {{tag.name}} - {{tag.counter}}
      </li>
    </ul>
  </div>
  <div ng-controller="DataController">

  </div>
</div>

TagsController $ scope包含一个在单击按钮时填充的searching_tags,因此#search div应该更新#results div(单击按钮时,以及填充文本框时)。

事实上,没有任何反应,虽然我为#search和#results设置了相同的控制器,但它们看起来都不相关。我可以有一个包装器div,它将使用TagsController而不是#search和#results div,但是我的UI构建方式使得这样的包装器将导致DataController嵌套在Tags控制器中,尽管它是在逻辑上完全错误,他们没有任何关系。

我有什么建议可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

这不起作用吗?

<div ng-controller="TagsController">
    <h1>My App</h1>
    <div id="search">

答案 1 :(得分:0)

由于数据控制器与标签控制器无关,你不希望它嵌套,你可以使用它吗?

<div ng-controller="TagsController">
  <h1>My App</h1>
  <div id="search" >
    <input type="text" ng-model="tags_to_search" />
    <button ng-click="search(tags_to_search)" />
  </div>
  <div id="results" >
    going to search {{tags_to_search}}
    <ul>
      <li ng-repeat="tag in searched_tags">
        {{tag.name}} - {{tag.counter}}
      </li>
    </ul>
  </div>
</div>
<div ng-controller="DataController">

</div>