如何使用参数在HTML中调用AngularJS中的$location

如何使用参数在HTML中调用AngularJS中的$location,angularjs,Angularjs,我有一个选择列表: <select name="forma" onchange="location = Category(SCID: this.value)"> <option value="38">Home</option> <option value="39">Contact</option> <option value="40">Sitemap</option> </se

我有一个选择列表:

<select name="forma" onchange="location = Category(SCID: this.value)">
     <option value="38">Home</option>
     <option value="39">Contact</option>
     <option value="40">Sitemap</option>
</select>

我知道您希望内联编写代码并更改位置。我给你的建议是不要

当可以选择调用函数并内联编写javascript代码时,可以选择调用函数。它使您的代码保持干净、易于理解和维护

因此,在这种情况下,请将模型附加到您选择的对象,以便当用户选择值时,您知道用户选择的值:

<select name="forma" data-ng-model="selectedFormaValue" 
        data-ng-change="updateLocation()">
     <option value="38">Home</option>
     <option value="39">Contact</option>
     <option value="40">Sitemap</option>
</select>

这将导致页面转到位置
http://locahost/#!/Category/

我认为angularjs中没有任何onchange属性来选择指令。您可以使用callmekatootie所述的ngChange。您可以尝试像现在这样进行内联操作,也可以将其绑定到控制器中的作用域函数。您应该始终将dom操作代入更改模型的控制器。希望这能有所帮助。

感谢您的快速回复。还有一件事要告诉你如何前往该地点:而不是locahost/#/类别/代码取决于您的路线配置。您可以将
html5mode
设置为true或指定自己的hashbang等效项。谷歌“AngularJSHTML5Mode”获取更多信息。
<select name="forma" data-ng-model="selectedFormaValue" 
        data-ng-change="updateLocation()">
     <option value="38">Home</option>
     <option value="39">Contact</option>
     <option value="40">Sitemap</option>
</select>
$scope.updateLocation = function () {
    //Make sure that a value is selected
    if ($scope.selectedFormaValue) {
        $location.path('/Category/' + $scope.selectedFormaValue);
    }
};