Emp*_*ets 9 javascript angularjs angular-material
我遇到了一个奇怪的错误,但也许我正在使用md-select错误.我正在尝试转到新页面或根据ng-selected选项退出.不幸的是,我收到此错误:
Error: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
Run Code Online (Sandbox Code Playgroud)
HTML:
<md-select placeholder="DISRUPTIVE" ng-model="activePage" ng-change="changeSelected()">
<md-option value="settings">Settings</md-option>
<md-option value="logout">Sign Out</md-option>
</md-select>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.changeSelected = function(){
switch ($scope.activePage) {
case "settings":
$location.path( '/account');
break;
case "logout":
$scope.logout();
break;
}
};
Run Code Online (Sandbox Code Playgroud)
导航到所选页面或注销后,我收到错误.md-select可以不用这种方式吗?
编辑:这与离开页面而不让md-select完成有关.如果我添加$ timeout,它会起作用.这不是理想的,但至少我可以继续前进:
$scope.changeSelected = function(){
$timeout(function() {
switch ($scope.activePage) {
case "settings":
$location.path( '/account');
break;
case "logout":
Auth.logout();
break;
}
}, 1000);
Run Code Online (Sandbox Code Playgroud)
Eyl*_*len 15
要收听选择的更改,您只需添加ng-change指令.检查这个简单的例子
<div ng-app="selectDemoBasic" ng-controller="AppCtrl" layout="column" layout-align="center center" style="min-height: 300px;">
<md-select placeholder="Pick" ng-model="someVal" ng-change="selectChanged()">
<md-option value="1">One</md-option>
<md-option value="2">Two</md-option>
</md-select>
</div>
Run Code Online (Sandbox Code Playgroud)
js部分
angular.module('selectDemoBasic', ['ngMaterial']).controller('AppCtrl', function($scope) {
$scope.selectChanged = function(){
alert("value changed-->"+$scope.someVal);
if ($scope.someVal==1){
$scope.otherFunction();
}
};
$scope.otherFunction = function(){
alert("in the other function");
};
});
Run Code Online (Sandbox Code Playgroud)
http://codepen.io/Eylen/pen/dobbqg/
| 归档时间: |
|
| 查看次数: |
31001 次 |
| 最近记录: |