我在Angular JS中使用routeProvider:
.when('/profile/personal', {
templateUrl: 'personal.html',
controller: 'EditProfileController'
})
Run Code Online (Sandbox Code Playgroud)
我如何将param传递给控制器EditProfileController,这里调用返回数据的Ajax方法.此数据必须显示在路径模板中personal.html.
例:
.controller('EditProfileController', ['$scope', '$http', function ($scope, $http) {
// If was click on `/profile/personal` from route, must get patam `personal` and call method GetAjax(param);
$scope.GetAjax = function (param){
//here return data put it in template HTML from route
}
}]);
Run Code Online (Sandbox Code Playgroud)
我的链接位于页面路径中:
http://wd.tk/profile
当我点击链接路线时,我得到了URL:
http://wd.tk/profile#/profile/personal/1
我会做:
.controller('EditProfileController', ['$scope', '$http', function ($scope, $http, $routeParams) {
console.log($routeParams);
}]);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
TypeError: Cannot read property 'idProfile' of undefined
Run Code Online (Sandbox Code Playgroud) 我在Angular JS中使用库Angular File Uploader。这filters就是允许将文件类型设置为上载的方式。我这样做像:
uploader.filters.push({
name: 'imageFilter',
fn: function (item /*{File|FileLikeObject}*/, options) {
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
return '|doc|txt|docx|xml|pdf|djvu'.indexOf(type) !== -1;
}
});
Run Code Online (Sandbox Code Playgroud)
问题是用户可以更改扩展文件,例如,更改*.exe为*.pdfAngular Uploader并将其添加到队列上传之后。
以及如何在模板中显示信息,PDF和txt文件在哪里?
我从Angular JS的AJAX查询中获取数据.是关于用户的信息.页面中有两个输入单选按钮:
<input type="radio" ng-model="sex" value="1">
<input type="radio" ng-model="sex" value="2">
Run Code Online (Sandbox Code Playgroud)
从AJAX我得到了领域{'sex' : '1'}.我如何检查输入value = 1并将其值设置为ng-model?
我ng-change在选择列表HTML中有事件:
<select class="form-control select short-input" ng-model="albumSelect" ng-change="selectedAlbum(albumSelect)" required>
<div ng-show="selectedAlbum == 'public'" class="cateroryArticle dropdown-checkbox dropdown"></div>
Run Code Online (Sandbox Code Playgroud)
Angular JS:
$scope.selectedAlbum = function (item) {
$scope.selectedAlbum = item;
}
Run Code Online (Sandbox Code Playgroud)
当我在选择列表中更改选项时,我收到错误:
TypeError:k不是ib.functionCall(angular.min.js:198)在l.$ get.l. $ eval(angular.min.js:125)at angular.min.js:213 at angular的函数. min.js:225 at s(angular.min.js:7)at dg.$$ writeModelToScope(angular.min.js:225)at angular.min.js:225 at l(angular.min.js:223) at g(angular.min.js:223)at dg. $$ runValidators(angular.min.js:224)
我找不到这个错误的原因.可能是什么?
我有控制器与执行AJAX请求的方法:
.controller('EditProfileController', ['$scope', '$http') {
// Do AJAX query here
// Some methods for update profile
}]);
Run Code Online (Sandbox Code Playgroud)
我$routeProvider也在这个Angular JS文件中:
.config(function ($routeProvider) {
$routeProvider
.when('/profile/personal/:type', {
templateUrl: '/personal.html',
controller: 'EditProfileController'
})
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我用URL打开页面时,/profile/personal/:type它再次调用控制器EditProfileController并调用内部的AJAX方法.
我怎么解决它?
HTML代码:
<div ng-controller="EditProfileController">
<!-- Here are loaded data from AJAX response
</div>
Run Code Online (Sandbox Code Playgroud)
解决方案:
问题ng-view在模板中是双重的:
<div ng-show="isLoaded" ng-view></div>
<div ng-show="!AILoading" ng-view></div>
Run Code Online (Sandbox Code Playgroud)