令人困惑的刷新Angular自定义指令/相邻指令之间的通信

时间:2016-01-22 00:41:04

标签: angularjs

我进入Angular已经两周了。我观看了几个Pluralsite视频并阅读了几篇帖子,这已经取得了很大进展,但也有些混乱。我想通知一个指令,指出另一个指令的某些变化。然后刷新指令。换句话说,它需要从第一个选择回到服务器并提取相应的数据。

我已经阅读了关于事件和$ watch()之类的内容,但后来我看到其他人说要避免观看并使用$ emit和$ on。我甚至看到有一篇文章说要使用翻译。

我可以访问Pluralsight和其他资源。如果有人能指出正确的方向,我会自学成才。

我的指令标记html:

<div class="col-md-3">
    <dashboard-main-nav></dashboard-main-nav>
</div>

<div class="col-md-3">
  <dash-select ng-show="vm.isDashSelectionVisible">Selections</dash-select>
</div>

我的应用声明:注意我知道我需要从范围中获取parm但不确定如何...

(function ()
 {
    "use-strict";
    ...snip controller setup etc..

    .directive("dashboardMainNav", function () {
        return {
            restrict: "E",
            templateUrl: "/Navigation/GetDashItems",
            scope: true
        }
    })
     .directive("dashSelect", function () {
         return {
             restrict: "E",
             templateUrl: "/Navigation/GetDashSelections/:" + $scope.??,
             scope: true
         }
     });
})();

routingController:

(function () {
    ...snip...
    function routingController($http, $scope) {
        var vm = this;
        var isDashSelectionVisible = false;
        var dashSelectionId = 0;

        $scope.LetterSearch= function (dashSelId) {
            vm.isDashSelectionVisible = true;
            vm.dashSelectionId = dashSelId;
            alert("Letters Clicked: " + dashSelId);
        }
    }
})();

呈现HTML:

<dashboard-main-nav>
    ....snip....
   <a href="#/ABCSearch" ng-click="LetterSearch(1)">Letters</a>
</dashboard-main-nav>

..... snip.....


<dash-select>
   <a href="#/NumSearch" ng-click="NumericSearch(2)">Numbers</a>
</dash-select>

我没有显示连接routingController的$ routeProvider配置,因为它工作正常。我只需要获取该自定义指令从scope..refresh中获取parm然后更新dom。

感谢您的耐心和知识分享。

0 个答案:

没有答案