我正在使用第三方库来创建一个使用Swift创建的新应用程序.类/库的作者使用final关键字使其最终成为可能,以优化和防止覆盖其属性和方法.
例:
final public class ExampleClass {
// Properties and Methods here
}
Run Code Online (Sandbox Code Playgroud)
是否有可能扩展类并为其添加一些新属性和方法而不覆盖默认值?
像这样:
extension ExampleClass {
// New Properties and Methods inside
}
Run Code Online (Sandbox Code Playgroud) 我有,我想只运行时,有一些代码noUser和一些有一个时候currentUser.
所有这些都在导航模板中.像这样......
{{#if currentUser}}
<li class="nav"><a href="{{pathFor 'create'}}">Post</a>
</li>
<li class="nav"><a>Ola, {{thisUser}}!</a>
</li>
<li class="nav"><a href="#" id="logout">Log Out</a>
</li>
{{/if}}
{{#if noUser}}
<li class="nav"><a href="{{pathFor 'signup'}}">Sign Up</a>
</li>
<li class="nav"><a href="{{pathFor 'login'}}">Login</a>
</li>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
所以问题是,当有一个currentUser(即我已经登录)并且我刷新页面时,{{#if noUser}}块内的代码首先显示然后是{{#if currentUser}}块,而{{#if noUser}}块只是在没有用户时显示.
这是模板的帮助代码..
Template.navigation.helpers({
thisUser: function () {
return Meteor.user().username;
},
noUser: function () {
var user = Meteor.user();
if (!user) {
return true;
};
}
});
Run Code Online (Sandbox Code Playgroud)
不知道我在这里做错了什么.:(
请帮忙.