在同一个角度控制器中将JSON数据从一个函数注入到另一个函数

时间:2016-06-15 22:19:40

标签: javascript jquery angularjs

我目前处于节点,角度,快速,html环​​境中。 我有许多按钮,用于填充此文本区域的格式化文本数据。

<div class="form-group">
 <label class="control-label" for="flyer description">Description</label>
  <textarea style="height:400px" class="form-control" id="flyer-description"></textarea>
</div>

这是我的按钮: <td><button id="button1">Client Welcome</button></td> 这是一个JS的片段,对应于20个中的这个1个按钮:

$(function() {
$('#button1').on('click', function() {
$('#flyer-description').load("/assets/clientwelcome.txt");
 });
  });

现在,当我导入文本时,我想导入JSON数据,以便当文本调用说{{client.name}}时,如果存在ClientCtrl(Angular Controller)和我的模块,它将更改为特定客户端名称。有没有人有任何建议?

2 个答案:

答案 0 :(得分:1)

如果您处于Angular环境中,则需要调整正在使用的模式。在你的情况下,他们是非常jQuery,而不是非常Angular。您可以通过调整以下内容来解决此问题:

<div class="form-group">
    <label class="control-label" for="flyer description">Description</label>
    <textarea style="height:400px" class="form-control" id="flyer-description" ng-model="flyerdescription"></textarea>
<div>

<td><button id="button1" ng-click="loadFlyer()">Client Welcome</button></td>

并将您的javascript修改为:

angular.module('<yourangularappname>').controller('ClientCtrl', function($scope, $http){
    $scope.loadFlyer = function() {
      $http.get("/assets/clientwelcome.txt").then(function(res){
          $scope.flyerdescription = res.data;
      });
    });
});

答案 1 :(得分:0)

您可以使用$http获取数据并异步返回,如下所示:

    $http.get('dir/wherever/your/data/is/data.json').then(
        function (response) {
            //success
            vm.buttonData = response;
        },
        function (response) {
            //fail
            console.log("error");
        }
    );

您可以在此处了解$http https://datatables.net/reference/option/rowCallback