2
我尝试把一些视频,就设在这个JSON文件,该文件名,一个div里面$指数,这是JSON文件:angularjs NG重复使用过滤器和跟踪通过工作不
{
"videos": {
"name": [
"dfg.webm",
"fdgh.mp4"
]
}
}
这是脚本:
(function(){
var app=angular.module("index",[]);
var videoUrl=function(name){
alert("asd");
return "./videos/"+name;
};
app.filter('videoUrl',function(){alert("asd");return videoUrl;});
var mainController=function($scope,$http){
var videosSuccess=function(response){
$scope.videosJSON=response.data;
};
var videosError=function(response){};
$http({
method: 'GET',
url: "http://192.168.1.66/videos.json",
}).then(videosSuccess,videosError);
};
app.controller("mainController",["$scope","$http",mainController]);
}());
,这是HTML:
<html lang="es" ng-app="index">
<head>
...
</head>
<body ng-controller="mainController">
<div id="videosdiv">
<video ng-repeat="video in videosJSON.videos.name | filter:videoUrl track by $index" preload="metadata" ng-src="{{video}}" type="video/webm">
</video>
</div>
</body>
</html>
的问题是,浏览器渲染这个:
<video data-ng-repeat="video in videosJSON.videos.name | filter:videoUrl track by $index" preload="metadata" ng-src="dfg.webm" type="video/webm" class="ng-scope" src="dfg.webm">
</video>
<video data-ng-repeat="video in videosJSON.videos.name | filter:videoUrl track by $index" preload="metadata" ng-src="fdgh.mp4" type="video/webm" class="ng-scope" src="fdgh.mp4">
</video>
,而不是这样的:
<video ng-repeat="video in videosJSON.videos.name track by $index" preload="metadata" ng-src="./videos/dfg.webm" type="video/webm" class="ng-scope" src="./videos/dfg.webm">
</video>
<video ng-repeat="video in videosJSON.videos.name track by $index" controls="" preload="metadata" ng-src="./videos/fdgh.mp4" type="video/webm" class="ng-scope" src="./videos/fdgh.mp4">
</video>
我认为过滤器不被因为功能“videoUrl”里面的警报使用未被触发,也不是“NG-SRC”或“SRC”属性被改变...有人可以告诉我发生了什么,或者我做错了什么?谢谢
我试过了,现在我得到了26个带有“src”参数的视频,它没有任何意义和很多警报,这是在chrome中生成的html的屏幕截图http://vvcap.net/db/xJ5yMmKXFE6KzmzgTfZU .htp – user3152041
查看我的演示...您的过滤器也不正确。看到我的答案。在我的答案中点击带存根数据的Plnkr。 – PSL
是的,它工作的感谢!过滤器是错误的,我不明白为什么过滤器接收非数组值,如果“if(!angular.isArray(names)){return [];}”行被注释:http: //vvcap.net/db/yBtWSEa1lDiMSEI6JFoi.htp – user3152041