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