Comments (4)
Obviously a bug here.
from saltarellecompiler.
Also, this mixin solution has a serious flaw in my opinion, but that's not the fault of saltarelle.
Suppose I want to create a plugin, which needs to accept some options (as many jquery plugins have)
The constructor will take the options as an argument, like
public static jQueryObject MyPlugin( MyPluginOptions options );
There is no way to access these options but from the static constructor... while many jquery plugins have additional methods that may or may not use/set properties from the option object.
This was already a problem I had in script# and I didn't get an good answer how to solve this.
eg. in jquery ui, dialog has a method to set options:
$("#myDialog").dialog( "option" , optionName , [value] )
Where do they store / retrieve the original MyPluginOptions that is passed to the constructor?
Should I model such a method as an overloaded static constructor ?
from saltarellecompiler.
First, I'm not sure whether I think it is actually a good idea to write jQuery plugins in Saltarelle (or Script#).
For your question, I guess what you'd do is something like
class MyPluginExtensions {
[InstanceMethodOnFirstArgument]
public static jQueryObject MyPlugin(this jQueryObject jq, MyPluginOptions opts) { return null; }
[InlineCode("{this}.myPlugin('option', 'myOption', {value})")]
public static jQueryObject MySetPluginOption(this jQueryObject jq, string value) { return null; }
}
[ScriptAlias("$.fn")]
public class MyPluginClass
public static void MyPlugin(TypeOption<MyPluginOptions, string> opts) {
if (Script.GetScriptType(opts) == "string" && (string)opts == "option") {
string optionName = Arguments.GetArgument(1);
object optionValue = Arguments.GetArgument(2);
// Set the option
}
else {
// Construct the plugin
}
}
}
from saltarellecompiler.
Fixed in 1.3.0
from saltarellecompiler.
Related Issues (20)
- [2.6.2] Canceled tasks should throw TaskCanceledException instead of InvalidOperationException HOT 3
- Status? HOT 1
- [2.6.2] Combining async, finally and IList/IEnumerable results in an incorrect execution workflow HOT 3
- Bridge.NET Acquires Saltarelle HOT 54
- Boolean XORs generate incorrect result HOT 1
- Non-serializable properties for serializable types HOT 1
- int.Parse() gets translated to parseInt(), which isn't precise HOT 4
- Bug in inheritance? HOT 3
- INTERNAL ERROR: ResolveResult ConversionResolveResult HOT 6
- Add support for InternalsVisibleTo attribute HOT 3
- [2.7.0] Asynchronous tasks swallow exceptions
- Minifier incorrectly minifies '+ ++' into '+++'
- When using [NamedValuesAttribute] on an enum, that enum's values are not compiled correctly when used as default parameters HOT 3
- If the data exict HOT 1
- Saltarelle.Runtime HOT 1
- Saltarelle rewrites Mixing expression $.expr[':'] to $["expr[':']"] HOT 1
- Provide toString override for Exception class, otherwise uncaught exceptions will end up logged as [object Object]
- ss_Int32.tryParse returns 0 when value can't be parsed (when input does not match regexp)
- Dictionary issue on Chrome HOT 3
- Saltarelle.Compiler 2.7.0 - INTERNAL ERROR: System.TypeLoadException
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from saltarellecompiler.