我正在使用routeProvider路由到" views / userspace.html"它使用" UserspaceController"
" views / userspace.html"识别此控制器并请求$ http请求。这个请求工作文件,我可以看到" views / userspace.html" (在ng-repeat内)。但是,在同一个控制器中,我已经定义了$scope.videoClick
函数,它似乎不起作用。知道为什么吗?
var application = angular.module("tss.application",
[
"ngRoute",
"ui.bootstrap"
]);
application.config(function($routeProvider)
{
$routeProvider
.when("/", {
templateUrl : "views/main.html",
controller: "LoginController"
})
.when("/files", {
templateUrl : "views/userspace.html",
controller: "UserspaceController"
});
});
userspace_controller.js
angular.module('tss.application').controller("UserspaceController",
function($scope, $log, $http, $uibModal)
{
$http(
{
url : "/dirlist",
method : "GET",
}).then(function successCallback(response)
{
$scope.lists = response.data;
},
function errorCallback(response)
{
window.alert("Dir list could not be get");
});
$scope.videoClick = function()
{
$log.info('received.');
$uibModal.open(
{
templateUrl: '/views/content.html',
});
};
});
userspace.html
<li ng-repeat="list in lists" ng-click="videoClick(list.src)">{{list.name}}</li>
答案 0 :(得分:2)
将您的功能更改为接受参数
$scope.videoClick = function(val) {
$log.info('received.');
$uibModal.open({
templateUrl: '/views/content.html',
});
};
或者更改HTML中的功能
<li ng-repeat="list in lists" ng-click="videoClick()">{{list.name}}</li>
答案 1 :(得分:0)
这是因为在你的;
AsyncTask
你有一个不需要的逗号,这使得该函数抛出一个错误,因为它期待另一个属性。
此外,如果您使用传递HTML的变量,则应使用Sajeetharan的答案。