Javascript 角度到服务器绑定不使用指令

Javascript 角度到服务器绑定不使用指令,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一个角度的问题,我有一个项目,有一个从服务器加载数据的简单控制器 我想验证数据并通过验证更改其显示 出于两个原因,我使用的是指令而不是过滤器 1.我正在改变DOM,我认为这更像是一项指导性工作 2.表演 我以前问过关于指令与过滤器的问题,我和评论员都认为指令更合适 现在我有这个问题,, 从服务器加载单个对象并将其设置为单个$scope属性时。指令未设置其值 但是当使用带有ng repeat的数组时,一切都很好。 问题是为什么,你认为什么应该是最好的方法 两个测试的演示代码 app.contr

我有一个角度的问题,我有一个项目,有一个从服务器加载数据的简单控制器 我想验证数据并通过验证更改其显示 出于两个原因,我使用的是指令而不是过滤器 1.我正在改变DOM,我认为这更像是一项指导性工作 2.表演

我以前问过关于指令与过滤器的问题,我和评论员都认为指令更合适

现在我有这个问题,, 从服务器加载单个对象并将其设置为单个$scope属性时。指令未设置其值 但是当使用带有ng repeat的数组时,一切都很好。 问题是为什么,你认为什么应该是最好的方法

两个测试的演示代码

app.controller('controller1',['$scope', 'HttpService', function($scope, HttpService) {
    HttpService.get().success(function(data) {
        $scope.item = data;
        $scope.item[0] = data;
    });
}]);

app.directive('directive1', ['ValdataionService' , function (ValdataionService){
    return {
        restrict: "A",
        scope: {
        },
        link: function (scope, elem, attrs) {
            var input = attrs.validateData;

            if(ValdataionService.isValid(input)) {
                elem.html('<div class="success">' + input + '</div>');
            } else {
                elem.html('<div class="error">' + input + '</div>');
            }
        }
     }
 }]);


 /* HTML */

 <!-- THIS DOES NOT WORK -->
 <div directive1 validate-data="{{item.input}}"></div>

 <!-- THIS DOES WORK -->
 <div ng-repeat="it in items">
     <div directive1 validate-data="{{it.input}}"></div>
 </div>

我认为“为什么”可能是最简单的问题。在数组中有数据之前,ng repeat实际上不会开始添加到DOM

我能够移动一些东西,让它在我这边工作。我认为您应该考虑将条件表达式放入指令中的模板中,而不是直接通过链接函数添加HTML。还可以尝试将validateData变量添加到指令私有范围并设置一些绑定

scope:{
validateData: ''
},
template:'<html code here>'

不知道您的演示是否与使用$http调用服务器完全相同,因为$time是angular上下文的一部分,而$http响应则不是。