在下面的代码示例中,有一种“ Angular 方式”可以防止按钮单击或表单提交的默认事件。目前我正在使用“onsubmit”来完成任务。
<form onsubmit="return false;">
<input ng-model="ctrl.task">
<button class="btn btn-primary" ng-click="ctrl.addTask()">Add</button>
</form>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用材料下拉选择,但出现此错误:
EXCEPTION: No provider found for DomPopupSourceFactory.
Run Code Online (Sandbox Code Playgroud)
将 materialDirectives 添加到指令列表中,html 调用很简单:
<material-dropdown-select></material-dropdown-select>
Run Code Online (Sandbox Code Playgroud)
我尝试了 angular_components_example 并且效果很好。问题出在我的项目上。我已经尝试清理 .packages 并执行 pub get。没有任何效果。我尝试了一些其他材料组件,它们奏效了。
在教程 Angular示例中,它使用 Route 来选择和控制 Angular View 组件。
我知道我们可以使用 *ngIf 指令来选择一个视图。这样,我认为这更具可读性。
请参阅示例:
路线(如教程)
template: '''
<h1>{{title}}</h1>
<nav>
<a [routerLink]="['Dashboard']">Dashboard</a>
<a [routerLink]="['Heroes']">Heroes</a>
</nav>
<router-outlet></router-outlet>
''',
...
@RouteConfig(const [
const Redirect(path: '/', redirectTo: const ['Dashboard']),
const Route(
path: '/dashboard',
name: 'Dashboard',
component: DashboardComponent,
),
const Route(
path: '/detail/:id',
name: 'HeroDetail',
component: HeroDetailComponent,
),
const Route(path: '/heroes', name: 'Heroes', component: HeroesComponent)
])
Run Code Online (Sandbox Code Playgroud)
*ngIf(替代路由)
template: '''
<h1>{{title}}</h1>
<nav>
<button on-click="optionMenu(1)">Dashboard</button>
<button on-click="optionMenu(2)">Heroes</button>
</nav>
<div *ngIf="oMenu == 1">
<my-dashboard></my-dashboard>
</div>
<div *ngIf="oMenu == 2"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现构建解决方案,在那里我将获得(之后webdev build)具有抗缓存文件 url 的文件,例如在index.html那里而不是<script defer src="main.dart.js"></script>像这样的东西<script defer src="main.dart.js?v=1.1.0"></script>- 我真的不在乎那是包版本的版本还是一些随机哈希。
我的观点是,如果我确实构建了一个新版本,我需要用户获取这个最新版本,而不是之前缓存的版本(因为相同的 url)。
我正在创建一个(我的第一个!)AngularDart 应用程序。我在一个组件中有List一个类的对象(以示例 ToDo 应用程序的列表组件为模型)。这显示在 a 中,并且一切正常。Procedureprocedure_list_component.dartMaterialListComponent
我使用的是 Dart SDK 2.1.0 和 AngularDart ^5.2.0。
现在我想开发一个新组件来显示所选Procedure. 选择部分工作正常。我的细节组件目前看起来像这样:
@Component(
selector: 'procedure-item',
templateUrl: '''
<div>
{{procedure.packageName}}.{{procedure.name}}
</div>
''',
directives: [
],
)
class ProcedureItemComponent {
@Input()
Procedure procedure;
}
Run Code Online (Sandbox Code Playgroud)
组件的用法如下所示:
@Component(
selector: 'procedure-item',
templateUrl: '''
<div>
{{procedure.packageName}}.{{procedure.name}}
</div>
''',
directives: [
],
)
class ProcedureItemComponent {
@Input()
Procedure procedure;
}
Run Code Online (Sandbox Code Playgroud)
但是,在运行时我收到错误:
EXCEPTION: Type 'String' is not a subtype of expected type 'Procedure'.
STACKTRACE:
dart:sdk_internal 4000:19 check_C
package:tadpole/src/procedure_list/procedure_list_component.template.dart …Run Code Online (Sandbox Code Playgroud) 一个简单的答案就足够了。我希望建立一个新网站,我喜欢 Dart 框架中的可扩展性和代码共享,但我并不真正了解这两个框架在基本层面上有何不同。答案可以像您喜欢的那样深入,但我真的只是在寻找外行的答案。
我这样做:
<tr ng-hide="true">
<td>xxx</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
在角度中,这总是隐藏有问题的行.在angular.dart中它似乎没有做任何事情.我究竟做错了什么?
我想用飞镖创建一个测验.复选框,radiobuttons,dropdownmenu,inputfields,...
此外,我想从数据库加载测验,将其显示在网站上,并将特定用户的结果存储到数据库中.Redis或mysql.
对我来说最大的问题是:我应该使用polymer.dart还是angular.dart?两者都有可能做到这一点,但什么是明显的选择?
看到这个简单的类和方法:
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart';
import 'package:angular/angular.dart';
@Injectable()
class ApiClient {
final Client _http;
static final _headers = { 'Content-Type': 'application/json' };
static final _encodedHeaders = { 'Content-Type': 'application/x-www-form-urlencoded' };
ApiClient(this._http);
Future<T> get<T>(String url, T f(dynamic e)) async {
try {
final response = await _http.get(url);
var data = JSON.decode(response.body);
print(data);
if(data == null)return null;
final ts = f(data);
return ts;
} catch (e) {
_handleError(e);
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它会导致此错误:
意外的标记'未来'.
Future get(String url,T f(dynamic e))async …
使用AngularDart材质包。确实可以在此错误上使用一些帮助:
“(用户名)没有值访问器,或者您的指令列表中可能缺少formDirectives。”
最小设置(formDirectives在指令列表中指定):
login.html
<form (ngSubmit)="onSubmit()" #form="ngForm">
<material-input class="username" ngControl="username" [(ngModel)]="username"
[required]="true"
[floatingLabel]="true"
label="Username">
</material-input>
</form>
Run Code Online (Sandbox Code Playgroud)
login.dart
import 'package:angular/angular.dart';
import 'package:angular_components/angular_components.dart';
import 'package:angular_forms/angular_forms.dart';
@Component(
selector: 'login',
styleUrls: const ['style.css'],
templateUrl: 'login.html',
directives: const [formDirectives,MaterialInputComponent,]
)
class LoginComponent {
String username;
void onSubmit() {}
}
Run Code Online (Sandbox Code Playgroud)