我是Angular的初学者! 请帮帮我! 有一个webapp(本地目录浏览器)。 我有app.js:
var currentPath = "http://localhost:9298/api/browse";
angular.module("browserApp", [])
.controller("BrowseController", function ($scope, $http) {
function getDirectoryBrowseModel(path) {
$http.get(path, { responseType: "JSON" })
.then(function (response) {
$scope.model = response.data
});
};
getDirectoryBrowseModel(currentPath);
});
和index.cshtml中的html:
<div ng-controller="BrowseController">
<span ng-repeat="drive in model.Drives">
{{drive.Name}}
</span>
<div>{{model.CurrentDrive.Name}}</div>
<div>{{model.CurrentDirectory.Path}}</div>
<div ng-repeat="dir in model.Directories">
<a href="#" onclick='$state.reload();'>{{dir.Name}}</a>
</div>
<div ng-repeat="file in model.Files">
{{file.Name}}
</div>
当我第一次运行应用程序时,它成功运行,我在我的app.js($ scope.model = response.data)和index.cshtml中得到了我的模型我有我的列表目录,文件和驱动器......
怎么办??? 当我点击{{dir.Name}}时,我想重新加载app.js控制器(或getDirectoryBrowseModel(currentPath)),其值为currentPath的新值,例如:currentPath =“http://localhost:9298/api/browse?path=C:\”;。我希望在视图index.cshtml中看到新的所有目录和文件。 感谢!!!
答案 0 :(得分:2)
您可以使用控制器中的$window
,然后使用新网址重新加载页面
<div ng-repeat="dir in model.Directories">
<a href="#" ng-click='updateUrl()'>{{dir.Name}}</a>
</div>
# in controller
updateUrl = function() {
$window.location.href = 'my/path'
}
答案 1 :(得分:0)
如果我理解你的问题,答案可能是使用angular-ui-router来改变状态https://github.com/angular-ui/ui-router
答案 2 :(得分:0)
var currentPath =“http://localhost:9298/api/browse”; - 它是某些服务上API的路径,我将它发送给我的控制器 function getDirectoryBrowseModel(path){ $ http.get(path,{responseType:“JSON”}) ... 我想在getDirectoryBrowseModel(path)中更改我的参数路径并在视图中刷新我的数据(index.cshtml) - 结果:视图中的新文件和目录
答案 3 :(得分:0)
user2954587的答案帮助我做出了正确的决定。
正确的决定是:将功能 $scope.clickToPath
添加到 app.js ,然后添加
的 ng-click='clickToPath("http://localhost:9298/api/browse?path=" + dir.Path)'
强>
index.html。
<强> app.js:强>
var currentPath = "http://localhost:9298/api/browse";
angular.module("browserApp", [])
.controller("BrowseController", function ($scope, $http) {
function getDirectoryBrowseModel(path) {
$http.get(path, { responseType: "JSON" })
.then(function (response) {
$scope.model = response.data
});
};
getDirectoryBrowseModel(currentPath);
$scope.clickToPath = function (path) {
getDirectoryBrowseModel(path);
}
});
index.cshtml: 中的
<div ng-controller="BrowseController">
<span ng-repeat="drive in model.Drives">
{{drive.Name}}
</span>
<div>{{model.CurrentDrive.Name}}</div>
<div>{{model.CurrentDirectory.Path}}</div>
<div ng-repeat="dir in model.Directories">
<a href="" id="{{dir.Name}}" ng-click='clickToPath("http://localhost:9298/api/browse?path=" + dir.Path)'>{{dir.Name}}</a>
</div>
<div ng-repeat="file in model.Files">
{{file.Name}}
</div>
感谢所有