将json变量传递给AngularJS中的控制器

将json变量传递给AngularJS中的控制器,angularjs,Angularjs,我正在AngularJS中创建一个插件,它将Json数组作为输入 此json通过用户的一些选择/输入在客户端动态生成,并存储在一个变量中 var jsonX = //This is an Eg Structure. [ { "ObjectName": "test", "ObjectTarget": "http://asdf.com/test.jpg", }, { "ObjectName": "test1",

我正在AngularJS中创建一个插件,它将Json数组作为输入

此json通过用户的一些选择/输入在客户端动态生成,并存储在一个变量中

var jsonX = //This is an Eg Structure. 
[

    {
        "ObjectName": "test",
        "ObjectTarget": "http://asdf.com/test.jpg",
    },
    {
        "ObjectName": "test1",
        "ObjectTarget": "http://asdf.com/test2.jpg",
    }
] ;
我想把这个变量jsonX传递给控制器

我也有一个要求,我可以在一个页面中多次使用插件,但用不同的变量初始化它

迄今取得的进展:

我已经使用静态输入实现了这个功能。需要一种传递动态数据的方法吗

//Js File
MyApp.controller('ObjectController', function ($scope) {
    $scope.title = "Hello Title";

**//--How Can i pass a variable on my page to this. 
// $scope.ObjectList = jsonX ;**

    $scope.ObjectList = [   
    {                     
        "ObjectName": "test",
        "ObjectTarget": "http://asdf.com/test.jpg",
    },
    {
        "ObjectName": "test1",
        "ObjectTarget": "http://asdf.com/test2.jpg",
    }
 ] ;

});
//&HTML

<div ng-controller="ObjectController">
 <!-- How can I pass the variable name through some tags Eg: ng-init = "jsonx" -->



</div
-----@worldAsk完整的源代码 --ngObjectControl.js-------- "严格使用",; /*控制器*/ var MyApp=angular.module'MyApp',[]; MyApp.controller'ObjectController',函数$scope{ $scope.title=你好标题; $scope.CurrentIndex=0; $scope.init=函数initVar{ $scope.ObjectList=initVar;//init var未定义 $scope.TotCnt=$scope.ObjectList.length; }; /* $scope.ObjectList=[ { 对象名称:FROX001, 对象目标:http://asdf.com/frox001.jpg, 对象类型:图像, ObjectData:Fiirst Waala }, { 对象名称:FROX002, 对象目标:http://asdf.com/frox001.jpg, ObjectType:pdf, ObjectData:Second Waala }, { 对象名称:FROX003, 对象目标:http://asdf.com/frox001.jpg, 对象类型:图标, 对象数据: }, { 对象名称:FROX004, 对象目标:http://asdf.com/frox001.jpg, 对象类型:图像, ObjectData:Fourth Waala } ]; */ $scope.movePrev=函数{ 如果$scope.CurrentIndex {{title}} {{obj.ObjectData}} {{obj.ObjectName}
是不正确的,您无法通过指令访问Html端的Js变量,指令中只能访问角度对象。因此,您应该将jsonx变量传递给角度对象,如
$scope.jsonx=jsonx,这样您就可以访问并且没有未定义的错误。

这篇文章给了我一个解决方法

我在控制器中添加了一个方法,该方法将重置我的列表:

$scope.SetObjectList = function (NewList) {
    $scope.ObjectList = NewList;
    $scope.TotCnt = $scope.ObjectList.length;
    $scope.CurrentIndex = 0;
};
&需要时从外部设置数据源:

<script > 

var ctrlx = document.getElementById("ngObjCtrl");

SetObjectCtrlDataSource(ctrlx, jsonx);


function SetObjectCtrlDataSource(ctrl, src) 
{
    var scope = angular.element(ctrl).scope();
    scope.$apply(function () {
    scope.SetObjectList(src);
    });
}

</script>

我已经尝试过了。但是我在init函数中得到了未定义的结果。在初始化其他脚本之前,jsonx变量在html文件中定义。我已经编辑了Postcan,您可以将其保存到某个位置,就像隐藏的输入一样,然后将其绑定到angular。像这样,如果我将变量绑定到输入字段,我如何在cont中使用它roller?然后可以使用$scope.jsonx
<script > 

var ctrlx = document.getElementById("ngObjCtrl");

SetObjectCtrlDataSource(ctrlx, jsonx);


function SetObjectCtrlDataSource(ctrl, src) 
{
    var scope = angular.element(ctrl).scope();
    scope.$apply(function () {
    scope.SetObjectList(src);
    });
}

</script>