Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未呈现从AJAX调用结算和加载的范围变量_Angularjs - Fatal编程技术网

Angularjs 未呈现从AJAX调用结算和加载的范围变量

Angularjs 未呈现从AJAX调用结算和加载的范围变量,angularjs,Angularjs,我正在尝试使用Angular加载表单,并执行以下过程: 从PHP脚本加载值 加载必须在其上呈现值的模板 HTML <form ng-controller="formularCtrl" ng-init="initForm()"> <div ng-bind-html='form.template | unsafe'></div> </form> PHP $form = new StdClass(); $form->name->id

我正在尝试使用Angular加载表单,并执行以下过程:

  • 从PHP脚本加载值

  • 加载必须在其上呈现值的模板

  • HTML

    <form ng-controller="formularCtrl" ng-init="initForm()">
        <div ng-bind-html='form.template | unsafe'></div>
    </form>
    
    PHP

    $form = new StdClass();
    $form->name->id = 'name';
    $form->name->type = 'text';
    $form->name->value = 'Test';
    echo json_encode($form);
    // {"name": {"id":"name", "type":"text", "value":"Test"}}
    
    模板

    <input 
      type="{{form.content.name.type}}" 
      id="{{form.content.name.id}}" 
      value="{{form.content.name.value}}" />
    
    但是这些值没有在HTML中呈现,结果是输入的内部是
    {{form.content.name.value}
    ,而不是“Test”

    我还不习惯使用scope,但在AJAX调用期间或之后,我尝试了
    $scope.$apply()
    ,但没有成功(而且绝对没有改变)


    (我还尝试加载模板,然后加载值,仍然不起作用。)

    在Ajax成功函数中,执行$scope.$apply(函数(){$scope.form.template=data;})

    你试过使用模板吗?试着从中找到答案。这基本上就是您想要实现的。@MateuszKocz正是我所需要的,谢谢为了避免摘要错误,将$scope.$apply()包装在$timeout中,延迟为0。这将在摘要完成后将操作放入队列。您需要将$timeout注入控制器$超时(函数(){$scope.$apply(…);},0);
    <input 
      type="{{form.content.name.type}}" 
      id="{{form.content.name.id}}" 
      value="{{form.content.name.value}}" />
    
    console.log($scope.form.content.name.value); // Test