父范围

时间:2016-08-17 15:31:06

标签: javascript angularjs json

我对棱角分明的js很陌生,目前它还很顺利,但现在我有一个问题。

我有一个带有topnav和contentpart的模板。全部都有自己的控制器。 使用按钮,我可以打开一个“子菜单”,我可以在“液体”部分中从数据库中选择数据。多数人工作得很好。

由于Topnav是在页面的登录处呈现的,因此topnav不会再次呈现。

如果我在内容部分添加Liquid,我必须重新加载“Liquid”-Dropdown背后的数据。

该下拉列表封装在一个指令中:

  function liquidselect(Data){
    return {
        restrict: 'AE',
        templateUrl:   'views/controls/liquid_select.html',
        scope: {
            selectedValues : '='
        },
        link: function(scope) {

        },
        controller: function ($scope) {
          //
          Data.post('ownrecipes').then(function (results) {
            $scope.searchRes = results;
          });
          // debugger;
          //$scope.searchRes = RecipeDataService.data;

          $scope.disabled = undefined;
          $scope.searchEnabled = false;
          $scope.searchRes = [];

          $scope.flavoring = {amount: {}};

          $scope.updateModelValue = function (selected) {
              // console.log(selected);
              //
              $scope.selectedValues = selected;
          };
        }
    }
  }

与服务器的通信由工厂完成:

app.factory("Data", ['$http', 'toaster',
    function ($http, toaster ) { // This service connects to our REST API
        // var deffered = $q.defer();
        var serviceBase = 'api/v1/';

        var obj = {};
        obj.toast = function (data) {
            toaster.pop(data.status, "", data.message, 3000, 'trustedHtml');
        }
        obj.get = function (q) {
            return $http.get(serviceBase + q).then(function (results) {
                return results.data;
            });
        };
        obj.post = function (q, object) {

            return $http.post(serviceBase + q, object).then(function (results) {
                return results.data;
            });
        };
        obj.put = function (q, object) {
            return $http.put(serviceBase + q, object).then(function (results) {
                return results.data;
            });
        };
        obj.delete = function (q) {
            return $http.delete(serviceBase + q).then(function (results) {
                return results.data;
            });
        };

        return obj;
}]);

如何从子范围更新/重新加载指令的数据?有机会吗?

这是一个能够展示我的问题并想要我做的人:

http://plnkr.co/edit/bNANkQYZfBaS4CHH3dwX

我希望它对你有帮助: - )

布局: Basic Layout

0 个答案:

没有答案