我最近开始学习飞镖和聚合物,发现一个问题。我在聚合物中写了一个my-loginarea
元素,它含有两个聚合物元素username-input
和password-input
。两者都有一个Dart脚本,它有一个方法来检查输入是否为空。如何在shadow DOM中调用Dart Polymer元素的方法?
String verifyPassword() {
if(password == null || password.isEmpty) {
errorMsg = "Password empty";
}
return errorMsg;
}
如果按下登录按钮时,my-loginarea
元件的方法verifyLogin()
被调用来验证所述输入。我想要这种方法在username-input
和password-input
上调用verifyPassword
方法,但我不知道如何调用这些方法或至少如何获得这些元素的实例的参考。
这里是LoginArea.html的代码:
<polymer-element name="my-loginarea">
<template>
<template if="{{!userLoggedIn}}">
<div align="center">
<table>
<tr>Username:
<login-usernameinput></login-usernameinput>
</tr>
<tr>Password:
<login-passwordinput></login-passwordinput>
</tr>
<tr>
<button on-click="{{verifyLogin}}">Login</button>
</tr>
<span id="error" hidden?="{{errorMsgs.isEmpty}}">
<template repeat="{{err in errorMsgs}}">
<p>{{err}}</p>
</span>
</table>
</div>
</template>
<template if="{{userLoggedIn}}">
<div align="center">
<p>Successfully logged in!</p>
<button on-click="{{userLogout}}">Logout</button>
</div>
</template>
<script type="application/dart" src="loginBehaviour.dart"></script>
</polymer-element>
如果您可以添加更多代码,这将会很有帮助。元素如何在HTML中组织?您提到的聚合物元素是由相同(父)聚合物元素包含还是直接在您的入口页面('index.html')的HTML中? – 2014-10-06 08:31:02
我刚刚编辑我的问题,并添加了一些HTML代码 – Azael 2014-10-06 08:36:56
我更新了我的答案。 – 2014-10-06 08:42:03